Monitoring activity of a user in locomotion on foot

ABSTRACT

One disclosed method involves using at least one device supported by a user while the user is in locomotion on foot during an outing to automatically measure amounts of time taken by the user to complete respective distance intervals. During the outing, data representing the automatically measured amounts of time may be automatically stored in memory of the least one device. Another disclosed method involves using at least one device supported by a user while the user is in locomotion on foot during an outing to automatically identify occasions on which a user completes respective distance intervals. During the outing, the at least one device may display at least one of an average pace of the user since a most recently completed distance interval, an average speed of the user since the most recently completed distance interval, and a projected time to complete a current distance interval based on monitored performance since the most recently completed distance interval. Yet another disclosed method involves using at least one device supported by a user while the user is in locomotion on foot during an outing to monitor a distance traveled by the user. An input to the at least one device may be received that specifies a goal distance for the outing, and the at least one device may determine a remaining distance to be traveled to complete one of the specified goal distance for the outing and a calculated fraction of the specified goal distance for the outing.

RELATED APPLICATIONS

This is a continuation of application Ser. No. 12/571,392, filed Sep.30, 2009, and, which is a continuation of application Ser. No.11/706,144, filed Feb. 13, 2007, which is a continuation of applicationSer. No. 11/098,788, filed Apr. 4, 2005, now U.S. Pat. No. 7,200,517,which is a continuation of Ser. No. 09/643,191, filed on Aug. 21, 2000,and now U.S. Pat. No. 6,898,550, which is a continuation-in-part of eachof application Ser. Nos. 09/547,975, 09/547,976, 09/547,977, and09/548,217, each of which was filed on Apr. 12, 2000, and is nowabandoned. Each of application Ser. Nos. 09/547,975, 09/547,976,09/547,977, and 09/548,217 is a continuation-in-part of application Ser.No. 09/364,559, filed on Jul. 30, 1999, and now U.S. Pat. No. 6,052,654,which is a continuation of application Ser. No. 08/942,802, filed Oct.2, 1997, and now U.S. Pat. No. 6,018,705. Application Ser. No.09/643,191 is also a continuation-in-part of each of application Ser.No. 09/164,654, filed Oct. 1, 1998, and now U.S. Pat. No. 6,122,340,Ser. No. 09/382,049, filed Aug. 24, 1999, and now U.S. Pat. No.6,336,365, and Ser. No. 09/521,073, filed Mar. 7, 2000, and now U.S.Pat. No. 6,560,903. Priority is claimed to each of the foregoingapplications under 35 U.S.C. §120, and the entire contents of each ofthem is hereby incorporated herein by reference.

BACKGROUND

1. Field of the Invention

The present invention relates to the monitoring of the activity of auser in locomotion on foot.

2. Discussion of the Related Art

It is known that useful information may be derived from the measurementof the “foot contact time” (Tc) of a user in locomotion, wherein “footcontact time” refers to the period of time that a foot of a user is incontact with the surface during a stride taken by the user while theuser is in locomotion on foot. Once the foot contact time (Tc) of theuser is known, other information, such as rate of travel, distancetraveled, and ambulatory expended energy may be calculated based uponthis measured foot contact time (Tc).

In the past, foot contact time (Tc) has been measured by placingpressure-sensitive sensors or switches, such as resistive sensors, inboth the heel and toe portions of the sole of a shoe, and measuring atime difference between a first signal output by the heel sensor (whichindicates that the foot has made physical contact with the surface) anda second signal output by the toe sensor (which indicates that the foothas left the surface). These sensors, however, are subjected to ahigh-impact environment inside of the shoe, and therefore failfrequently. In addition, inaccurate foot contact time (Tc) measurementsmay result when a user is taking strides during which either the heelsensor or the toe sensor is not activated, for example, when a user isrunning on his or her toes.

Another device well-known in the art is a pedometer. A pedometertypically is mounted on the waist of a user and is configured to countthe footsteps of the user by measuring the number of times the user'sbody moves up an down during strides taken by the user. A well-knownprior art pedometer design uses a weight mounted on a spring to countthe number of times that the user's body moves up and down as the useris walking. By properly calibrating the pedometer according to apreviously measured stride length of the user, the distance traveled bythe user may be measured by this device. These “weight-on-a-spring”pedometers, however, generally cannot measure the distance traveled by arunner because the weight experiences excessive bouncing during runningand footsteps are often “double-counted” because of this bouncing,thereby causing the pedometer to produce inaccurate results. Thesedevices therefore cannot be used across different training regimes(e.g., walking, jogging, and running).

Another prior art pedometer device uses an accelerometer to measure thenumber of times that a user's foot impacts the surface when the user isin locomotion. That is, an accelerometer is mounted on the user's shoeso as to produce a signal having pronounced downward going peaks thatare indicative of moments that the user's foot impacts the surface.These devices therefore produce results similar to the prior artweight-on-a-spring pedometer devices in that they merely count thenumber of footsteps of the user, and must be calibrated according to thestride length of the user in order to calculate the distance traveled bythe user. Thus, these accelerometer-based devices are subject to similarlimitations as are the weight-on-a-spring devices, and are not capableof measuring the foot contact time (Tc) of a user in locomotion.

It is therefore a general object of the present invention to provide anew approach to pedometry.

SUMMARY

According to one aspect of the present invention, a method involvesusing at least one device supported by a user while the user is inlocomotion on foot during an outing to automatically measure amounts oftime taken by the user to complete respective distance intervals. Duringthe outing, data representing the automatically measured amounts of timeis automatically stored in memory of the least one device.

According to another aspect, a method involves using at least one devicesupported by a user while the user is in locomotion on foot during anouting to automatically identify occasions on which a user completesrespective distance intervals. During the outing, the at least onedevice displays at least one of an average pace of the user since a mostrecently completed distance interval, an average speed of the user sincethe most recently completed distance interval, and a projected time tocomplete a current distance interval based on monitored performancesince the most recently completed distance interval.

According to another aspect, a method involves using at least one devicesupported by a user while the user is in locomotion on foot during anouting to monitor a distance traveled by the user. An input to the atleast one device is received that specifies a goal distance for theouting. The at least one device determines a remaining distance to betraveled to complete one of the specified goal distance for the outingand a calculated fraction of the specified goal distance for the outing.

According to another aspect, a method involves using at least one devicesupported by a user while the user is in locomotion on foot during anouting to monitor a performance parameter of the user comprising one apace of the user and a speed of the user. Prior to the outing, the atleast one device is configured to specify first and second intervals ofthe outing and corresponding first and second performance zones for thefirst and second intervals, wherein each of the first and secondperformance zones comprises one of a zone of paces and a zone of speedsand is different that the other of the first and second performancezones. During the first interval, an action is taken with the at leastone device in response to determining that the monitored performanceparameter of the user has fallen outside the first performance zone.During the second interval, an action is taken with the at least onedevice in response to determining that the monitored performanceparameter of the user has fallen outside the second performance zone.

According to another aspect, a method involves using at least one devicesupported by a user while the user is in locomotion on foot during anouting to monitor a distance traveled by the user. Prior to the outing,the at least one device is configured to specify first and seconddistance intervals that are different than one another. A first actionis taken with the at least one device in response to determining thatthe user has completed the first distance interval during the outing. Asecond action is taken with the at least one device in response todetermining that the user has completed the second distance intervalduring the outing.

According to another aspect, a method involves monitoring a performanceparameter of a user with at least one device supported by the user whilethe user is in locomotion on foot during an outing, the at least onedevice having at least one configurable operational characteristic. Acomputer is manipulated to specify a particular configuration of the atleast one configurable operational characteristic, and a connection isestablished between the computer and the at least one device.Information is transferred from the computer to the at least one devicevia the connection that causes the at least one device to take on theparticular configuration of the at least one configurable operationalcharacteristic, and the connection between the computer and the at leastone device is de-established prior to the outing.

According to another aspect, a method comprises a step of identifying agrade of a surface based upon a measured physiological parameter of auser in locomotion on foot on the surface.

According to another aspect, a method comprises steps of identifying anaverage foot contact time of a user during a first outing, identifyingan average pace of the user during the first outing, and determining arelationship between foot contact times of the user and correspondingpaces of the user, wherein the relationship is based upon the averagefoot contact time and the average pace identified during the firstouting, and wherein no other average foot contact times and no otheraverage paces identified during any different outings by the user areused to define the relationship. The method further comprises steps ofdetermining at least one foot contact time of the user during a secondouting, and calculating a pace of the user during the second outingbased upon the determined at least one foot contact time and thedetermined relationship between foot contact times of the user andcorresponding paces of the user.

According to another aspect, a method comprises steps of determining asingle user-specific calibration constant that defines a relationshipbetween foot contact times of a user and corresponding paces of theuser, wherein no other user-specific calibration constants are used todefine the relationship, determining at least one foot contact time ofthe user during an outing, and calculating a pace of the user during theouting based upon the determined at least one foot contact time and therelationship between foot contact times of the user and correspondingpaces of the user that is defined by the single user-specificcalibration constant.

According to another aspect, an apparatus comprises a mount, a housing,and a sensor. The mount is adapted to be disposed at least partiallyunderneath a shoelace of a shoe. The housing is configured and arrangedto be placed in at least first and second states in relation to themount, wherein in the first state the housing is movable with respect tothe mount and in the second state the housing is immovable with respectto the mount. There is a tongue on one of the mount and the housing anda groove on the other of the mount and the housing, the tongue beingadapted to engage the groove when the housing is in the second state inrelation to the mount and to disengage the groove then the housing is inthe first state with respect to the mount. The sensor, which sensesmotion of the shoe, is disposed within the housing such that the sensorremains disposed within the housing when the housing is placed in thefirst state in relation to the mount and the housing is moved withrespect to the mount.

According to another aspect, a method involves providing a housing thathouses a sensor that senses motion of a shoe, and attaching the mount toan instep portion of the shoe such that at least a portion of the mountis disposed underneath at least a portion of a shoelace of the shoe. Atongue on one of the mount and the housing is engaged with a groove onthe other of the mount and the housing to inhibit the housing frommoving with respect to the mount. The tongue is also disengaged from thegroove, and the housing is moved with respect to the mount withoutseparating the sensor from the housing.

According to another aspect, a method involves determining at least onecalculated parameter based upon at least one determined performanceparameter of the user and at least one determined variable physiologicalparameter of the user.

According to another aspect, a method involves identifying at least oneof an existence of a non-zero grade of a surface and a value of thegrade of the surface based upon at least one determined variablephysiological parameter of a user.

According to another aspect, a method involves identifying at least oneof an existence of a grade of a surface and a value of the grade of thesurface based upon at least one determined performance parameter of auser.

According to another aspect, a system includes at least one processorconfigured to identify at least one of an existence of a non-zero gradeof a surface and a value of the grade of the surface based upon at leastone determined variable physiological parameter of a user in locomotionon foot on the surface.

According to another aspect, a system includes at least one processorconfigured to identify at least one of an existence of a non-zero gradeof a surface and a value of the grade of the surface based upon at leastone determined performance parameter of the user in locomotion on footon the surface.

According to another aspect, a system includes at least one first sensorthat determines at least one performance parameter of the user while theuser is in locomotion on foot; at least one second sensor thatdetermines at least one variable physiological parameter of the userwhile the user is in locomotion on foot; and means for determining atleast one calculated parameter based upon the at least one determinedperformance parameter of the user and the at least one determinedvariable physiological parameter of the user.

According to another aspect, a system includes at least one sensor thatdetermines at least one physiological condition of a user while the useris in locomotion on foot on a surface; and means for identifying atleast one of an existence of a non-zero grade of the surface and a valueof the grade of the surface based upon the at least one determinedphysiological condition of the user.

According to another aspect, a system includes at least one sensor thatdetermines at least one performance parameter of a user while the useris in locomotion on foot on a surface; and means for identifying atleast one of an existence of a non-zero grade of the surface and a valueof the grade of the surface based upon the at least one determinedperformance parameter.

According to another aspect, a method includes steps of: with at leastone device supported by a user while the user is in locomotion on foot,determining at least one performance parameter of the user; andestimating a value of a variable physiological parameter of the userbased upon the determined at least one performance parameter of theuser.

According to another aspect, a method includes steps of: (a) identifyingat least one of an existence of a non-zero grade of a surface and avalue of the grade of the surface; and (b) with at least one devicesupported by a user while the user is in locomotion on foot, determiningat least one performance parameter of the user based upon the identifiedat least one of an existence of the non-zero grade of the surface andthe value of the grade of the surface.

According to another aspect, a method includes steps of: (a) determiningat least one altitude of a user; and (b) with at least one devicesupported by the user while the user is in locomotion on foot,calculating at least one performance parameter of the user based uponthe at least one determined altitude of the user.

According to another aspect, a system includes at least one sensor,adapted to be supported by a user while the user is in locomotion onfoot, that determines at least one performance parameter of the user;and at least one processor that calculates a value of a variablephysiological parameter of the user based upon the determined at leastone performance parameter of the user.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot on a surface, that determines at least one performance parameter ofthe user based upon at least one of an identified existence of anon-zero grade of the surface and an identified value of the grade ofthe surface.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot, that calculates at least one performance parameter of the userbased upon at least one identified altitude of the user.

According to another aspect, a system includes at least one sensor,adapted to be supported by a user while the user is in locomotion onfoot, that determines at least one performance parameter of the user;and means for calculating a value of a variable physiological parameterof the user based upon the determined at least one performanceparameter.

According to another aspect, a system includes means for identifying atleast one of an existence of a non-zero grade of a surface and a valueof the grade of the surface; and means, adapted to supported by a userwhile the user is in locomotion on foot on the surface, for determiningat least one performance parameter of the user based upon the identifiedat least one of the existence of the non-zero grade of the surface andthe value of the grade of the surface.

According to another aspect, a system includes means for determining atleast one altitude of a user; and means, adapted to be supported by theuser while the user is in locomotion on foot, for calculating at leastone performance parameter of the user based upon the at least onedetermined altitude of the user.

According to another aspect, a method involves, in response to movementof a user during at least one footstep taken by the user, generating asignal that experiences changes during a time period that the foot isairborne during at least one footstep taken by the user. At least onechange in the signal generated after the foot has become airborne andbefore the foot contacts the surface is identified that is indicative ofthe foot being airborne during the at least one footstep.

According to another aspect, a method involves generating a signal inresponse to movement of a user during at least one footstep taken by theuser. The signal is monitored to determine when the signal hasexperienced a minimum degree of smoothness for at least a given periodof time. In response to determining that the signal has experienced theminimum degree of smoothness for at least the given period of time, itis identified that the foot of the user is airborne.

According to another aspect, a method involves generating a signal inresponse to movement of a user during at least one footstep taken by theuser. It is determined whether any characteristics of the signal satisfyany one of a plurality of predetermined criteria consistent with a footof the user engaging in a particular event during a footstep.

According to another aspect, a method involves generating a signal inresponse to movement of a user during at least one footstep taken by theuser. The signal is sampled to obtain a plurality of samples of thesignal. Differences between pairs of the plurality of samples of thesignal are calculated, and the calculated differences between the pairsof the plurality of samples of the signal are monitored to identify atleast one pair of the plurality of samples of the signal having adifference therebetween that is indicative of a particular event duringthe at least one footstep.

According to another aspect, a method involves generating a signal inresponse to movement of a user during a plurality of footsteps taken bythe user. A threshold is set based upon at least one firstcharacteristic of the signal generated during at least a first one ofthe plurality of footsteps preceding a second one of the plurality offootsteps. The signal generated during the second one of the pluralityof footsteps is analyzed to determine whether at least one secondcharacteristic of the signal generated during the second one of theplurality of footsteps has exceeded the threshold.

According to another aspect, a method includes steps of: (a) generatinga signal in response to movement of a user during a plurality offootsteps taken by the user; (b) with at least one processor, analyzingthe signal to determine a moment that a foot of the user makes contactwith a surface during one of the plurality of footsteps taken by theuser; (c) after performing the step (b), with the at least oneprocessor, analyzing the signal to determine a moment that the footleaves the surface during the one of the plurality of footsteps; (d)waiting a given period of time after performing the step (b) to performthe step (c); (e) with the at least one processor, during the givenperiod of time, performing calculations involving at least one of adetermined foot contact time and a determined foot loft time; and (f)repeating the steps (b), (c), (d), and (e) for each of the plurality offootsteps.

According to another aspect, a system is disclosed that may be used inconjunction with at least one sensor that, in response to movement of auser during at least one footstep taken by the user on a surface,generates a signal that experiences changes during a time period that afoot of the user is airborne during the at least one footstep. Thesystem includes at least one processor configured to identify at leastone change in the signal generated after the foot has become airborneand before the foot contacts the surface that is indicative of the footbeing airborne during the at least one footstep.

According to another aspect, a system is disclosed that may be used inconjunction with at least one sensor that generates a signal in responseto movement of a user during at least one footstep taken by the user.The system includes at least one processor configured to monitor thesignal to determine when the signal has experienced a minimum degree ofsmoothness for at least a given period of time, and to, in response todetermining that the signal has experienced the minimum degree ofsmoothness for at least the given period of time, identify that the footof the user is airborne.

According to another aspect, a system is disclosed that may be used inconjunction with at least one sensor that generates a signal in responseto movement of a user during at least one footstep taken by the user ona surface. The system includes at least one processor configured todetermine whether any characteristics of the signal satisfy any one of aplurality of predetermined criteria consistent with a foot of the userengaging in a particular event during a footstep.

According to another aspect, a system is disclosed that may be used inconjunction with at least one sensor that generates a signal in responseto movement of a user during at least one footstep taken by the user ona surface. The system includes at least one processor configured tosample the signal to obtain a plurality of samples of the signal, tocalculate differences between pairs of the plurality of samples of thesignal, and to monitor the calculated differences between the pairs ofthe plurality of samples of the signal to identify at least one pair ofthe plurality of samples of the signal having a difference therebetweenthat is indicative of a particular even during the at least onefootstep.

According to another aspect, a system is disclosed that may be used inconjunction with at least one sensor that generates a signal in responseto movement of a user during a plurality of footsteps taken by the user.The system includes at least one processor configured to set a thresholdbased upon at least one first characteristic of the signal generatedduring at least a first one of the plurality of footsteps preceding asecond one of the plurality of footsteps, and to analyze the signalgenerated during the second one of the plurality of footsteps todetermine whether at least one second characteristic of the signalgenerated during the second one of the plurality of footsteps hasexceeded the threshold.

According to another aspect, a system includes at least one processorconfigured to compare a foot contact time of a user with a thresholdvalue, to determine that the user is running if the foot contact time isless than the threshold value, and to determine that the user is walkingif the foot contact time is greater than the threshold value.

According to another aspect, a system includes at least one sensor that,in response to movement of a user during at least one footstep taken bythe user, generates a signal that experiences changes during a timeperiod that the foot is airborne during the at least one footstep, andmeans for identifying at least one change in the signal generated afterthe foot has become airborne and before the foot contacts a surface thatis indicative of the foot being airborne during the at least onefootstep.

According to another aspect, a system includes at least one sensor thatgenerates a signal in response to movement of a user during at least onefootstep taken by the user, and means for monitoring the signal todetermine when the signal has experienced a minimum degree of smoothnessfor at least a given period of time, and for, in response to determiningthat the signal has experienced the minimum degree of smoothness for atleast the given period of time, identifying that the foot of the user isairborne.

According to another aspect, a system includes at least one sensor thatgenerates a signal in response to movement of a user during at least onefootstep taken by the user, and means for determining whether anycharacteristics of the signal satisfy any one of a plurality ofpredetermined criteria consistent with a foot of the user engaging in aparticular event during a footstep.

According to another aspect, a system includes at least one sensor thatgenerates a signal in response to movement of a user during at least onefootstep taken by the user, and means for sampling the signal to obtaina plurality of samples of the signal, for calculating differencesbetween pairs of the plurality of samples of the signal, and formonitoring the calculated differences between the pairs of the pluralityof samples of the signal to identify at least one pair of the pluralityof samples of the signal having a difference therebetween that isindicative of a particular event during the at least one footstep.

According to another aspect, a system includes at least one sensor thatgenerates a signal in response to movement of a user during a pluralityof footsteps taken by the user, and means for setting a threshold basedupon at least one first characteristic of the signal generated during atleast a first one of the plurality of footsteps preceding a second oneof the plurality of footsteps, and for analyzing the signal generatedduring the second one of the plurality of footsteps to determine whetherat least one second characteristic of the signal generated during thesecond one of the plurality of footsteps has exceeded the threshold.

According to another aspect, a method includes steps of (a) generating asignal in response to movement of a user during a footstep taken by theuser; (b) identifying a first characteristic in the signal consistentwith the occurrence of a toe-off event; (c) identifying a first momentthat the first characteristic occurred as a potential occurrence of atoe-off event during the footstep; (d) identifying a secondcharacteristic in the signal, occurring after the first characteristicin the signal, consistent with the occurrence of a toe-off event; and(e) identifying a second moment that the second characteristic occurredas the potential occurrence of the toe-off event during the footstep.

According to another aspect, a system includes at least one sensor thatgenerates a signal in response to movement of a user during a footsteptaken by the user, and at least one processor that identifies a firstcharacteristic in the signal consistent with the occurrence of a toe-offevent, that identifies a first moment that the first characteristicoccurred as a potential occurrence of a toe-off event during thefootstep, that identifies a second characteristic in the signal,occurring after the first characteristic in the signal, consistent withthe occurrence of a toe-off event, and that identifies a second momentthat the second characteristic occurred as the potential occurrence ofthe toe-off event during the footstep.

According to another aspect, a system includes at least one sensor thatgenerates a signal in response to movement of a user during a footsteptaken by the user; means for identifying a first characteristic in thesignal consistent with the occurrence of a toe-off event; means foridentifying a first moment that the first characteristic occurred as apotential occurrence of a toe-off event during the footstep; means foridentifying a second characteristic in the signal, occurring after thefirst characteristic in the signal, consistent with the occurrence of atoe-off event; and means for identifying a second moment that the secondcharacteristic occurred as the potential occurrence of the toe-off eventduring the footstep.

According to another aspect, a display unit to be mounted on a wrist ofa user includes a display screen, a base, and at least one strap. Thedisplay screen visually displays characters, and has a top edge and abottom edge corresponding, respectively, to tops and bottoms of thecharacters displayed on the display screen. The base supports thedisplay screen and houses electronic circuitry associated with thedisplay screen. The at least one strap is attached to the base and isadapted to secure the base to the wrist of the user. The base isconfigured and arranged such that, when the base is secured to the wristof the user with the at least one strap, the top edge of the displayscreen is disposed a first distance away from an outer surface of theuser's wrist as determined along a first line oriented normal to theouter surface of the user's wrist and passing through the top edge ofthe display screen, and the bottom edge of the display screen isdisposed a second distance away from an outer surface of the user'swrist as determined along a second line oriented normal to the outersurface of the user's wrist and passing through the bottom edge of thedisplay screen, wherein the first distance is greater than the seconddistance.

According to another aspect, a method includes steps of: (a) with atleast one device supported by a user while the user is in locomotion onfoot, determining respective values of at least first and secondparameters selected from a group consisting of an instantaneous pace ofthe user, an average pace of the user, and a distance traveled by theuser; and (b) displaying visually-perceptible information indicative ofthe determined values of the at least first and second parameters,simultaneously.

According to another aspect, a method includes steps of: (a) with atleast one device supported by a user while the user is in locomotion onfoot, determining a value of at least one variable physiologicalparameter of the user; (b) with the at least one device, determining avalue of at least one performance parameter of the user; and (c)displaying visually-perceptible information indicative of the determinedvalues of the at least one variable physiological parameter of the userand the at least one performance parameter of the user, simultaneously.

According to another aspect, a method includes steps of (a) with atleast one device supported by the user, determining respective values ofat least first and second parameters selected from a group consistingof: an instantaneous speed of the user, an average speed of the user,and a distance traveled by the user; and (b) displayingvisually-perceptible information indicative of the determined values ofthe at least first and second parameters, simultaneously.

According to another aspect, a system includes at least one deviceadapted to be supported by a user while the user is in locomotion onfoot. The at least one device includes at least one sensor to determinerespective values of at least first and second parameters selected froma group consisting of: an instantaneous pace of the user, an averagepace of the user, and a distance traveled by the user, the at least onedevice further comprising a display configured to displayvisually-perceptible information indicative of the determined values ofthe at least first and second parameters, simultaneously.

According to another aspect, a system includes at least one deviceadapted to be supported by a user while the user is in locomotion onfoot. The at least one device includes a first sensor to determine avalue of at least one variable physiological parameter of the user, asecond sensor to determine a value of at least one performance parameterof the user, and a display configured to display visually-perceptibleinformation indicative of the determined values of the at least onevariable physiological parameter of the user and the at least oneperformance parameter of the user, simultaneously.

According to another aspect, a system includes at least one deviceadapted to be supported by a user while the user is in locomotion onfoot. The at least one device includes at least one sensor to determinerespective values of at least first and second parameters selected froma group consisting of: an instantaneous speed of the user, an averagespeed of the user, and a distance traveled by the user, and a displayconfigured to display visually-perceptible information indicative of thedetermined values of the at least first and second parameters,simultaneously.

According to another aspect, a system includes means, adapted to besupported by a user while the user is in locomotion on foot, fordetermining respective values of at least first and second parametersselected from a group consisting of: an instantaneous pace of the user,an average pace of the user, and a distance traveled by the user; andmeans, adapted to be supported by the user while the user is inlocomotion on foot, for displaying visually-perceptible informationindicative of the determined values of the at least first and secondparameters, simultaneously.

According to another aspect, a system includes first means, adapted tobe supported by a user while the user is in locomotion on foot, fordetermining a value of at least one variable physiological parameter ofa user; second means, adapted to be supported by the user while the useris in locomotion on foot, for determining a value of at least oneperformance parameter of the user; and third means, adapted to besupported by the user while the user is in locomotion on foot, fordisplaying visually-perceptible information indicative of the determinedvalues of the at least one variable physiological parameter of the userand the at least one performance parameter of the user, simultaneously.

According to another aspect, a system includes means, adapted to besupported by a user while the user is in locomotion on foot, fordetermining respective values of at least first and second parametersselected from a group consisting of: an instantaneous speed of the user,an average speed of the user, and a distance traveled by the user; andmeans, adapted to be supported by the user while the user is inlocomotion on foot, for displaying visually-perceptible informationindicative of the determined values of the at least first and secondparameters, simultaneously.

According to another aspect, a method includes steps of: (a) identifyingan average foot contact time of a user during a first outing; (b)identifying an average pace of the user during the first outing; (c)defining a relationship between foot contact times of the user andcorresponding paces of the user, wherein the relationship is based uponthe average foot contact time and the average pace identified during thefirst outing, and wherein no other average foot contact times and noother average paces identified during any different outings by the userare used to define the relationship; and (d) calibrating at least onedevice that monitors activity of the user in locomotion on foot basedupon the defined relationship between foot contact times of the user andcorresponding paces of the user.

According to another aspect, a method includes steps of: (a) determininga single user-specific calibration constant that defines a relationshipbetween foot contact times of a user and corresponding paces of theuser, wherein no other user-specific calibration constants are used todefine the relationship; and (b) calibrating at least one device thatmonitors activity of the user in locomotion on foot based upon therelationship between foot contact times of the user and correspondingpaces of the user that is defined by the single user-specificcalibration constant.

According to another aspect, a method includes steps of: (a) on a graphhaving foot contact times of a user on a first coordinate axis and pacesof the user on a second coordinate axis, determining a location of afirst point particular to the user; (b) identifying a second point onthe graph independent of the user; (c) based upon locations of the firstand second points on the graph, defining a curve on the graph thatintercepts both of the first and second points; and (d) calibrating atleast one device that monitors activity of the user in locomotion onfoot based upon the defined curve.

According to another aspect, a method includes steps of: (a) based upona first relationship between foot contact times of a user andcorresponding paces of the user, defining a second relationship betweeninverse values of foot contact times of the user and correspondingspeeds of the user; and (b) calibrating at least one device thatmonitors activity of the user in locomotion on foot based upon thesecond relationship.

According to another aspect, a method involves determining a speed of auser in locomotion on foot by including at least one determined footcontact time in an equation defining a relationship between inversevalues of foot contact times of the user and corresponding speeds of theuser.

According to another aspect, a method includes steps of: (a) based upona first relationship between inverse values of foot contact times of auser and corresponding speeds of the user, defining a secondrelationship between foot contact times of the user and correspondingpaces of the user; and (b) calibrating at least one device that monitorsactivity of the user in locomotion on foot based upon the secondrelationship.

According to another aspect, a method includes steps of: (a) identifyingan average foot contact time of a user during a first outing; (b)identifying an average speed of the user during the first outing; (c)defining a relationship between inverse values of foot contact times ofthe user and corresponding speeds of the user, wherein the relationshipis based upon the average foot contact time and the average speedidentified during the first outing; and (d) calibrating at least onedevice that monitors activity of the user in locomotion on foot basedupon the defined relationship between inverse values of foot contacttimes of the user and corresponding speeds of the user.

According to another aspect, a method includes steps of: (a) determininga single user-specific calibration constant that defines a relationshipbetween inverse values of foot contact times of a user and correspondingspeeds of the user, wherein no other user-specific calibration constantsare used to define the relationship; and (b) calibrating at least onedevice that monitors activity of the user in locomotion on foot basedupon the relationship between inverse values of foot contact times ofthe user and corresponding speeds of the user that is defined by thesingle user-specific calibration constant.

According to another aspect, a system includes at least one processorconfigured to define a relationship between foot contact times of a userand corresponding paces of the user, wherein the relationship is basedupon an average foot contact time and an average pace identified duringa first outing, and wherein no other average foot contact times and noother average paces identified during any different outings by the userare used to define the relationship, the at least one processor beingfurther configured to calculate at least one of a pace of the user and adistance traveled by the user during a second outing based upon at leastone foot contact time determined during the second outing and thedefined relationship between foot contact times of the user andcorresponding paces of the user.

According to another aspect, a system includes at least one processorconfigured to use a single user-specific calibration constant to definea relationship between foot contact times of a user and correspondingpaces of the user without any other user-specific calibration constantsbeing used to define the relationship, the at least one processor beingfurther configured to calculate at least one of a pace of the user and adistance traveled by the user during an outing based upon at least onefoot contact time determined during the outing and the definedrelationship between foot contact times of the user and correspondingpaces of the user.

According to another aspect, a system includes at least one processorconfigured to, on a graph having foot contact times of a user on a firstcoordinate axis and paces of the user on a second coordinate axis,determine a location of a first point particular to the user, toidentify a second point on the graph independent of the user, and to,based upon locations of the first and second points on the graph, definea curve on the graph that intercepts both of the first and secondpoints, the at least one processor being further configured to calculateat least one of a pace of the user and a distance traveled by the userduring an outing based upon at least one foot contact time determinedduring the outing and the defined curve.

According to another aspect, a system includes at least one processorconfigured to, based upon a first relationship between foot contacttimes of a user and corresponding paces of the user, define a secondrelationship between inverse values of foot contact times of the userand corresponding speeds of the user, the at least one processor beingfurther configured to calculate at least one of a speed of the user anda distance traveled by the user during an outing based upon at least onefoot contact time determined during the outing and the second relationship.

According to another aspect, a system includes at least one processorconfigured to, determine a speed of a user in locomotion on foot byincluding at least one determined foot contact time in an equationdefining a relationship between inverse values of foot contact times ofthe user and corresponding speeds of the user.

According to another aspect, a system includes at least one processorconfigured to, based upon a first relationship between inverse values offoot contact times of a user and corresponding speeds of the user,define a second relationship between foot contact times of the user andcorresponding paces of the user, the at least one processor beingfurther configured to calculate at least one of a speed of the user anda distance traveled by the user during an outing based upon at least onefoot contact time determined during the outing and the secondrelationship.

According to another aspect, a system includes at least one processorconfigured to define a relationship between inverse values of footcontact times of a user and corresponding speeds of the user based uponan average foot contact time and an average speed determined during afirst outing, the at least one processor being further configured tocalculate at least one of a speed of the user and a distance traveled bythe user during a second outing based upon at least one foot contacttime determined during the second outing and the defined relationship,

According to another aspect, a system includes at least one processorconfigured to use a single user-specific calibration constant to definea relationship between inverse values of foot contact times of a userand corresponding speeds of the user without using any otheruser-specific calibration constants to define the relationship, the atleast one processor being further configured to calculate at least oneof a speed of the user and a distance traveled by the user during anouting based upon at least one foot contact time determined during theouting and the relationship between inverse values of foot contact timesof the user and corresponding speeds of the user that is defined by thesingle user-specific calibration constant.

According to another aspect, a system includes means for defining arelationship between foot contact times of the user and correspondingpaces of the user, wherein the relationship is based upon an averagefoot contact time and an average pace identified during a first outing,and wherein no other average foot contact times and no other averagepaces identified during any different outings by the user are used todefine the relationship; and means for calculating at least one of apace of the user and a distance traveled by the user during a secondouting based upon at least one foot contact time determined during thesecond outing and the defined relationship between foot contact times ofthe user and corresponding paces of the user.

According to another aspect, a system includes means for using a singleuser-specific calibration constant to define a relationship between footcontact times of a user and corresponding paces of the user, wherein noother user-specific calibration constants are used to define therelationship; and means for calculating at least one of a pace of theuser and a distance traveled by the user during an outing based upon atleast one foot contact time determined during the outing and the definedrelationship between foot contact times of the user and correspondingpaces of the user.

According to another aspect, a system includes means for, based upon afirst relationship between foot contact times of a user andcorresponding paces of the user, defining a second relationship betweeninverse values of foot contact times of the user and correspondingspeeds of the user; and means for calculating at least one of a speed ofthe user and a distance traveled by the user during an outing based uponat least one foot contact time determined during the outing and thesecond relationship.

According to another aspect, a system includes means for determining atleast on foot contact time of a user; and means for determining a speedof the user by including the at least one foot contact time in anequation defining a relationship between inverse values of foot contacttimes of the user and corresponding speeds of the user.

According to another aspect, a system includes means for, based upon afirst relationship between inverse values of foot contact times of auser and corresponding speeds of the user, defining a secondrelationship between foot contact times of the user and correspondingpaces of the user; and means for calculating at least one of a pace ofthe user and a distance traveled by the user during an outing based uponat least one foot contact time determined during the outing and thesecond relationship.

According to another aspect, a system includes means for defining arelationship between inverse values of foot contact times of the userand corresponding speeds of the user, wherein the relationship is basedupon an average foot contact time and an average speed identified duringa first outing; and means for calculating at least one of a speed of theuser and a distance traveled by the user during a second outing basedupon at least one foot contact time determined during the second outingand the relationship between inverse values of foot contact times of theuser and corresponding speeds of the user.

According to another aspect, a system includes means for using a singleuser-specific calibration constant to define a relationship betweeninverse values of foot contact times of a user and corresponding speedsof the user, wherein no other user-specific calibration constants areused to define the relationship; and means for calculating at least oneof a speed of the user and a distance traveled by the user during anouting based upon at least one foot contact time determined during theouting and the relationship between inverse values of foot contact timesof the user and corresponding speeds of the user that is defined by thesingle user-specific calibration constant.

According to another aspect, a method includes steps of: (a) with atleast one device supported by a user while the user is in locomotion onfoot, determining at least one foot contact time of the user inlocomotion; (b) comparing a variable having the at least one determinedfoot contact time as a factor therein with a threshold value; and (c1)if the variable is one of greater than or less than the threshold value,determining that the user is walking; and (c2) if the variable is theother of greater than or less than the threshold value, determining thatthe user is running.

According to another aspect, a method includes steps of: (a) determiningat least one foot contact time of a user while the user is in locomotionon foot; (b) comparing the at least one determined foot contact timewith a threshold value; and (c1) if the foot contact time is less thanthe threshold value, determining that the user is running; and (c2) ifthe foot contact time is greater than the threshold value, determiningthat the user is walking.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot, that determines at least one foot contact time of the user, andcompares a variable having the at least one determined foot contact timeas a factor therein with a threshold value; wherein, if the variable isone of greater than or less than the threshold value, the at least oneprocessor determines that the user is walking, and, if the variable isthe other of greater than or less than the threshold value, the at leastone processor determines that the user is running.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot, that determines at least one foot contact time of the user, andcompares the at least one determined foot contact time with a thresholdvalue; wherein, if the foot contact time is less than the thresholdvalue, the at least one processor determines that the user is running,and, if the foot contact time is greater than the threshold value, theat least one processor determines that the user is walking.

According to another aspect, a system includes at least one sensor,adapted to be supported by a user while the user is in locomotion onfoot, that determines at least one foot contact time of the user inlocomotion; means, adapted to be supported by the user while the user isin locomotion on foot, for comparing a variable having the at least onedetermined foot contact time as a factor therein with a threshold value;means, adapted to be supported by the user while the user is inlocomotion on foot, for determining that the user is walking if thevariable is one of greater than or less than the threshold value; andmeans, adapted to be supported by the user while the user is inlocomotion on foot, for determining that the user is running if thevariable is the other of greater than or less than the threshold value.

According to another aspect, a system includes at least one sensor,adapted to be supported by a user while the user is in locomotion onfoot, that determines at least one foot contact time of the user inlocomotion; means, adapted to be supported by the user while the user isin locomotion on foot, for comparing the at least one determined footcontact time with a threshold value; means, adapted to be supported bythe user while the user is in locomotion on foot, for determining thatthe user is running if the foot contact time is less than the thresholdvalue; and means, adapted to be supported by the user while the user isin locomotion on foot, for determining that the user is walking if thefoot contact time is greater than the threshold value.

According to another aspect, a method includes a step of: (a) with atleast one device supported by a user while the user is in locomotion onfoot on a surface, determining an amount of force exerted by at feastone foot of the user on the surface during at least one footstep takenby the user.

According to another aspect, a system includes at least one processoradapted to be supported by a user while the user is in locomotion onfoot on a surface, the at least one processor being configured toidentify an amount of force exerted by at least one foot of the user onthe surface during at least one footstep taken by the user.

According to another aspect, a system includes at least one sensoradapted to be supported by a user while the user is in locomotion onfoot on a surface; and means for identifying an amount of force exertedby at least one foot of the user on the surface during at least onefootstep taken by the user based upon an output of the at least onesensor.

According to another aspect, a method includes steps of: (a) with atleast one sensor supported by a user, monitoring movement of the userwhile the user is in locomotion on foot; and (b) determining a cadenceof the user based upon an output of the at least one sensor.

According to another aspect, a method includes steps of: (a) with atleast one sensor supported by a user while the user is in locomotion onfoot, monitoring movement of the user while the user is in locomotion onfoot; and (b) determining a stride length of the user during at leastone footstep taken by the user based upon an output of the at least onesensor.

According to another aspect, a system includes at least one sensoradapted to be supported by a user and to monitor movement of the userwhile the user is in locomotion on foot; and at least one processor thatdetermines a cadence of the user based upon an output of the at leastone sensor.

According to another aspect, a system includes at least one sensoradapted to be supported by a user and to monitor movement of the userwhile the user is in locomotion on foot; and at least one processorthat, based upon an output of the at least one sensor, determines astride length of the user during at least one footstep taken by theuser.

According to another aspect, a system includes at least one sensoradapted to be supported by a user and to monitor movement of the userwhile the user is in locomotion on foot; and means for determining acadence of the user based upon an output of the at least one sensor.

According to another aspect, a system includes at least one sensoradapted to be supported by a user and to monitor movement of the userwhile the user is in locomotion on foot; and means for determining astride length of the user during at least one footstep taken by the userbased upon an output of the at least one sensor.

According to another aspect, a method includes steps of: (a) with atleast one device supported by a user while the user is in locomotion onfoot on a surface, identifying one of a pace and a speed of the userrelative to the surface; and (b) with the at least one device,determining whether the identified one of the pace and the speed of theuser falls within one of a zone of paces and a zone of speeds.

According to another aspect, a method includes steps of: (a) with atleast one device supported by a user while the user is in locomotion onfoot, monitoring a distance traveled by the user; and (b) with the atleast one device, when the user has traveled a first predetermineddistance during the outing, providing an output indicating that the userhas traveled the first predetermined distance.

According to another aspect, a method includes steps of: (a) with atleast one device supported by a user while the user is in locomotion onfoot, monitoring a distance traveled by the user; (b) receiving a goaldistance as an input to the at least one device; and (c) with the atleast one device, determining a remaining distance to be traveled by theuser to reach one of the input goal distance and a calculated fractionof the input goal distance.

According to another aspect, a method includes steps of: (a) receivingas an input to at least one device supported by a user a valuerepresenting one of a goal time for the user to travel a particulardistance, a goal average pace for the user to maintain over theparticular distance, and a goal average speed for the user to maintainover the particular distance; (b) with the at least one device,determining a distance traveled by the user while the user is inlocomotion on foot; and (c) after the user has traveled a portion of theparticular distance, with the at least one device, determining at leastone performance parameter based upon the portion of the particulardistance traveled and the input value.

According to another aspect, a method includes steps of: (a) with atleast one device, determining a distance traveled by a user while theuser is in locomotion on foot; (b) with the at least one device,determining one of a current pace and a current speed of the user; and(c) after the user has traveled a portion of a particular distance, withthe at least one device, determining a projected time that it will takethe user to travel the particular distance based upon the one of thecurrent pace and the current speed of the user, and the portion of theparticular distance already traveled by the user.

According to another aspect, a method includes steps of (a) with atleast one device supported by a user while the user is in locomotion onfoot, determining a distance traveled by the user; (b) during at leastone first distance interval during an outing, with the at least onedevice, providing an indication to the user that the user should berunning; and (c) during at least one second distance interval during theouting, with the at least one device, providing an indication to theuser that the user should be walking.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot on a surface, that identifies one of a pace and a speed of the userrelative to the surface, and that determines whether the identified oneof the pace and the speed of the user falls within one of a zone ofpaces and a zone of speeds.

According to another aspect, a system includes at least one processorthat monitors a distance traveled by a user while the user is inlocomotion on foot, and that, when the user has traveled a firstpredetermined distance during an outing, provides an output indicatingthat the user has traveled the first predetermined distance.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot, that monitors a distance traveled by the user while the user is inlocomotion on foot, that receives a goal distance as an input, and thatdetermines a remaining distance to be traveled by the user to reach oneof the input goal distance and a calculated fraction of the input goaldistance.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot, that receives as an input a value representing one of a goal timefor the user to travel a particular distance, a goal average pace forthe user to maintain over the particular distance, and a goal averagespeed for the user to maintain over the particular distance, thatdetermines a distance traveled by the user while the user is inlocomotion on foot, and that, after the user has traveled a portion ofthe particular distance, determines at least one performance parameterbased upon the portion of the particular distance traveled and the inputvalue.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot, that determines a distance traveled by the user while the user isin locomotion on foot, that determines one of a current pace and acurrent speed of the user, and that, after the user has traveled aportion of a particular distance, determines a projected time that itwill take the user to travel the particular distance based upon the oneof the current pace and the current speed of the user, and the portionof the particular distance already traveled by the user.

According to another aspect, a system includes at least one processor,adapted to be supported by a user while the user is in locomotion onfoot, that determines a distance traveled by the user while the user isin locomotion on foot; and an indicator coupled to the processor, the atleast one processor and the indicator being configured such that, duringat least one first distance interval during an outing, the at least oneprocessor causes the indicator to provide an indication to the user thatthe user should be running, and such that, during at least one seconddistance interval during the outing, the at least one processor causesthe indicator to provide an indication to the user that the user shouldbe walking.

According to another aspect, a system includes means, adapted to besupported by a user while the user is in locomotion on foot on asurface, for identifying one of a pace and a speed of the user relativeto the surface; and means, adapted to be supported by the user while theuser is in locomotion on foot, for determining whether the identifiedone of the pace and the speed of the user falls within one of a zone ofpaces and a zone of speeds.

According to another aspect, a system includes means, adapted to besupported by the user while a user is in locomotion on foot, formonitoring a distance traveled by the user while the user is inlocomotion on foot; and means, adapted to be supported by the user whilethe user is in locomotion on foot, for providing an output indicatingthat the user has traveled a first predetermined distance.

According to another aspect, a system includes means, adapted to besupported by a user while the user is in locomotion on foot, formonitoring a distance traveled by the user while the user is inlocomotion on foot; means, adapted to be supported by the user while theuser is in locomotion on foot, for receiving a goal distance as an inputto the at least one device; and means, adapted to be supported by theuser while the user is in locomotion on foot, for determining aremaining distance to be traveled by the user to reach one of the inputgoal distance and a calculated fraction of the input goal distance.

According to another aspect, a system includes means, adapted to besupported by a user while the user is in locomotion on foot, forreceiving as an input to at least one device supported by the user avalue representing one of a goal time for the user to travel aparticular distance, a goal average pace for the user to maintain overthe particular distance, and a goal average speed for the user tomaintain over the particular distance; means, adapted to be supported bythe user while the user is in locomotion on foot, for determining adistance traveled by the user while the user is in locomotion on foot;and means, adapted to be supported by the user while the user is inlocomotion on foot, for, after the user has traveled a portion of theparticular distance, determining at least one performance parameterbased upon the portion of the particular distance traveled and the inputvalue.

According to another aspect, a system includes means, adapted to besupported by a user while the user is in locomotion on foot, fordetermining a distance traveled by the user while the user is inlocomotion on foot; means, adapted to be supported by the user while theuser is in locomotion on foot, for determining one of a current pace anda current speed of the user; and means, adapted to be supported by theuser while the user is in locomotion on foot, for, after the user hastraveled a portion of a particular distance, determining a projectedtime that it will take the user to travel the particular distance basedupon the one of the current pace and the current speed of the user, andthe portion of the particular distance already traveled by the user.

According to another aspect, a system includes means, adapted to besupported by a ‘user while the user is in locomotion on foot, fordetermining a distance traveled by the user while the user is inlocomotion on foot; means, adapted to be supported by the user while theuser is in locomotion on foot, for providing an indication to the user,during at least one first distance interval during an outing, that theuser should be running; and means, adapted to be supported by the userwhile the user is in locomotion on foot, for providing an indication tothe user, during at least one second distance interval during theouting, that the user should be walking.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an illustration of various components of an activitymonitoring system mounted to a user's body in accordance with oneembodiment of the present invention;

FIGS. 2A and 2B show perspective and side views, respectively, of anexample embodiment of the foot-mounted unit of the activity monitoringsystem shown in FIG. 1;

FIGS. 3A and 3B show perspective cutaway and side views, respectively,of an example embodiment of the wrist-mounted unit of the activitymonitoring system shown in FIG. 1;

FIG. 4 is a block diagram of various electronic components that may beincluded in the foot-mounted and wrist-mounted units of FIG. 1-3 inaccordance with one embodiment of the invention;

FIG. 5 is a block diagram of an example of an accelerometer-based sensorthat may be employed in the foot-mounted unit of FIGS. 1, 2, and 4 inaccordance with one embodiment of the invention;

FIG. 6 is a partial-schematic, partial-block diagram of the sensor andprocessor of the foot-mounted unit shown in FIGS. 4 and 5 in accordancewith one embodiment of the invention;

FIG. 7 is a graph showing a typical output signal of a sensor such asthat shown in FIGS. 4-6 and the various characteristics of the signalthat may be monitored according to one embodiment of the invention;

FIG. 8 is a graph showing the linear relationship between the footcontact time (Tc) of a user in locomotion and the pace at which the useris walking or running (Pace);

FIG. 9 is an illustration of a user in locomotion on foot thatdemonstrates the relationship between the foot contact time (Tc) of theuser, the speed at which the user is walking or running (Speed), and thestep length (Ls) of the user;

FIG. 10 is a graph illustrating the relationship between a user's steplength (Ls) and the speed at which the user is walking or running(Speed);

FIG. 11 is a graph showing the linear relationship between the footcontact time (Tc) of a user in locomotion and the pace at which the useris walking or running (Pace) wherein universal pivot points areidentified along the foot contact time (Tc) axis of each of the“walking” and “running” lines;

FIG. 12 is a graph showing the relationship between the speed of a userin locomotion (Speed) and the inverse of the foot contact time of theuser (1/Tc) as it would appear if the curve of FIG. 11 were mapped ontothe coordinate axes of the graph of FIG. 12;

FIG. 13 shows a portion of the graph of FIG. 12 (converted to speedunits of miles per hour) and illustrates the substantially linearrelationship between the speed of the user in locomotion (Speed) and theinverse of the contact time of the user (1/Tc) within a reasonable rangeof walking or running speeds;

FIG. 14 is a flow diagram illustrating an example implementation of aprimary routine that may be performed by the processor of thefoot-mounted unit shown in FIGS. 4 and 6 in accordance with oneembodiment of the present invention;

FIG. 15 is a flow diagram illustrating an example implementation of the“wait” routine shown in FIG. 14 which causes the routine to wait apredetermined amount of time after detecting a heel-strike event beforebeginning to look for a toe-off event;

FIG. 16 is a flow diagram illustrating an example implementation of the“process button” routine shown in FIG. 15 which implements thefunctionality of a button that may be disposed on the foot-mounted unitof FIGS. 1, 2, and 4;

FIG. 17 is a flow diagram illustrating an example implementation of the“toe-off event?” routine shown in FIG. 14 wherein it is determined whenthe foot of a user leaves the ground during a stride taken by the user;

FIG. 18 is a flow diagram illustrating an example implementation of the“determine whether potential lift off occurred” routine shown in FIG.17;

FIG. 19 is a flow diagram illustrating an example implementation of the“air signature?” routine shown in FIG. 17;

FIG. 20 is a graph showing a typical output signal of a sensor such asthat shown in FIGS. 5 and 6 when the heel of a user strikes the groundduring a stride taken by the user;

FIG. 21 is a flow diagram illustrating an example implementation of the“heel-strike event?” routine shown in FIG. 14, wherein it is determinedwhen the foot or a user comes into contact with the ground during astride taken by a user;

FIG. 22 is a flow diagram illustrating an example implementation of the“are any of landing criteria met?” routine shown in FIG. 21;

FIG. 23 is a flow diagram illustrating an example implementation of the“update threshold” routine shown in each of FIGS. 17 and 21 which may beused to dynamically update a threshold value for detecting a heel-strikeevent in response to one or more changing characteristics of the signaloutput by the sensor of the foot-mounted device shown in FIGS. 4-6;

FIG. 24 is a flow diagram illustrating an example implementation of the“is landing qualified?” routine shown in FIG. 21 during which the valueof the variable “threshold” determined in connection with the routine ofFIG. 23 is used to qualify a potential heel-strike event identified bythe “are any of landing criteria met?” routine of FIG. 22;

FIG. 25 is a flow diagram illustrating an example implementation of the“check activity” routine shown in FIG. 14 during which the foot-mountedunit may be caused to enter a low-power mode or to shut down entirely iflittle or no activity is detected;

FIG. 26 is a flow diagram illustrating an example implementation of the“smooth and calculate” routine shown in FIG. 14 during which valuesobtained during the primary routine of FIG. 14 may be validated orcorrected, and activity-related calculations may be performed using thesame;

FIG. 27 is a timing diagram illustrating the symmetry between the steptimes of footsteps measured from toe lift-off to toe lift-off and fromheel impact to heel impact during strides taken by a user;

FIG. 28 is a flow diagram illustrating an example implementation of the“toe-to-toe & heel-to-heel Ts comparison and correction” routine shownin FIG. 26 during which data collected by the foot-mounted unit of FIGS.1, 2, and 4 may be validated or corrected to ensure that it has thesymmetry shown in FIG. 27;

FIGS. 29A and 29B are graphs illustrating acceptable ranges for theratios of foot contact times and step times (Tc/Ts) for data accumulatedwhile a user is walking or running;

FIG. 30 is a flow diagram illustrating an example implementation of the“Tc, Ts & Tens bounds checking” routine shown in FIG. 26 during whicheach measured foot contact time (Tc) and step time (Ts), as well as theratio of each foot contact time to its corresponding step time (Tc/Ts),may be validated or replaced to ensure that these values fall within theacceptable ranges therefore illustrated in FIGS. 29A-B;

FIG. 31 is a flow diagram illustrating an example implementation the“Tc_(AVE) calculation” routine shown in FIG. 26 during which an averagefoot contact time value (Tc_(AVE)) over several footsteps taken by theuser may be calculated in a manner depending on the rate at which themeasured foot contact time (Tc) values are increasing or decreasing;

FIGS. 32A-H illustrate examples of respective combinations of parametersthat may be displayed on the display of the wrist-mounted unit shown inFIGS. 1, 3, and 4 in accordance with one embodiment of the invention;

FIG. 33A is a graph showing each of speed and stride length as afunction of distance for a user running a four hundred meter race;

FIG. 33B is a graph similar to FIG. 33A except that values of speed andstride length are averaged over fifty meter intervals;

FIG. 34A is a graph showing each of speed and stride rate as a functionof distance for a user running a four hundred meter race;

FIG. 34B is a graph similar to FIG. 34A except that the values of speedand stride rate are averaged over fifty meter intervals;

FIG. 35A is a graph showing each of speed and caloric burn rate as afunction of distance for a user running a four hundred meter race;

FIG. 35B is a graph similar to FIG. 35A except that the values of speedand calorie burn rate are averaged over fifty meter intervals;

FIG. 36A is a graph showing each of speed and acceleration as a functionof distance for a user running a four hundred meter race;

FIG. 36B is a graph similar to FIG. 36A except that the values of speedand acceleration are averaged over fifty meter intervals;

FIG. 37 is a chart showing various determined performance parametersaveraged over fifty meter intervals of a four hundred meter race run bya user;

FIG. 38 is a graph showing the relationship between pace and step time(Ts) for a user over a reasonable range of walking speeds;

FIG. 39 is a graph showing the relationship between speed and theinverse of step time (1/Ts) for a user over a reasonable range ofwalking speeds;

FIG. 40 is a chart showing the relationship between each of speed andpace of a user and the average ground force exerted by the user whilethe user is traveling at that speed or pace, as well as accumulatedstress values measured per unit distance and per unit time correspondingto that speed or pace of the user; and

FIG. 41 is a graph showing the relationship between a user's speed andaccumulated stress values, measured both per unit time and per unitdistance.

DETAILED DESCRIPTION

An illustrative embodiment of a system for monitoring activity of a userin locomotion is shown in FIG. 1. As shown, the system includes afoot-mounted unit 102, a wrist-mounted unit 104, and a chest-mountedunit 106, all attached to a user 112 who is in locomotion (i.e., walkingor running) on a surface 108. In accordance with one aspect of thepresent invention, the foot-mounted unit 102 includes a sensor forsensing motion of a foot 114 of the user 112.

The sensor included in the foot-mounted unit 102 may be any of a numberof devices capable of sensing the motion of the user's foot 114, and theinvention is not limited to the use of any particular type of sensor. Inone illustrative embodiment, for example, the foot-mounted unit 102includes a solid-state accelerometer that senses acceleration along anacceleration sensing axis 110, as shown in FIG. 1. In anotherembodiment, the sensor includes a low-cost accelerometer such as thatdisclosed in U.S. Pat. No. 6,336,365, the entire contents of which arehereby incorporated herein by reference. Other sensors that may be usedinclude, for example, pressure-sensitive resistive switches,piezoelectric transducers, GMR sensors, simple contact switches, mercuryswitches, or any other devices capable of generating a signal indicativeof motion of the foot 114 of the user 112 while the user 112 is inlocomotion.

It should be appreciated that, advantageously, several of the sensorsthat can be used in the foot-mounted unit 102 do not require compressionforces thereon to sense motion of the foot 114, and therefore need notbe subjected to the physical wear and tear typically-exerted on motionsensors such as pressure-sensitive resistive switches, contact switches,and the like. Because such sensors are not required to be subjected tocompression forces to sense motion, they may be located above a bottomsurface 116 of the user's foot 114, e.g., on an instep 118 of the user'sshoe or on the user's ankle or waist. Therefore, the sensors included inthese types of devices need not be incorporated within or on thesole-portion of a user's shoe, and specially-designed shoes need not beused to accommodate them.

It should also be appreciated that the foot-mounted unit 102 mayalternatively be mounted at other locations on the body of the user 112,and the invention is not limited to embodiments wherein the unit 102 ismounted on the user's foot 114. It is important only that the output ofthe sensor included in the unit 102 produces a signal in response toactivity of the user 112 (e.g., movement of the user's foot 114) whilethe user 112 is in locomotion. The unit 102 may, for example, be mountedon the ankle, thigh, waist, chest, etc., of the user 112 in connectionwith different embodiments of the invention.

As shown in FIG. 1, the wrist-mounted unit 104 may be mounted to a wrist124 of the user 112. The wrist-mounted unit 104 may, for example,include a display for displaying information to the user 112 based upondata accumulated by the foot-mounted unit 102 and transmitted to thewrist-mounted unit 104 via a wireless communication link (e.g., over aradio-frequency (RF) network). Communication between the foot-mountedunit 102 and the wrist-mounted unit 104 may either be one-way ortwo-way.

In one illustrative embodiment, the foot-mounted unit 102 accumulatesand transmits data to the wrist-mounted unit 104 where it may be used todisplay, for example, the current pace (or speed) of the user 112, aswell as the average pace (or speed) of the user 112, the energy (e.g.,calories) expended by the user 112, and the total distance traveled bythe user 112 during a particular time interval. One illustrativetechnique for calculating energy expenditure based upon one or moremeasured foot contact time (Tc) values is disclosed in U.S. Pat. No.5,925,001, which is hereby incorporated herein by reference in itsentirety. Examples of these and other information types that may besimultaneously displayed to the user 112 in this regard are describedbelow in connection with FIG. 32.

It should be appreciated that the wrist-mounted unit 104 need not besecured to the wrist 124 of the user 112, and may alternatively bedisposed elsewhere on the user's body or at a location remote from theuser 112. For example, in alternative embodiments, the unit 104 may be ahand-held device that can be carried by or placed in a pocket of theuser 112, it may be a so-called “head's up” display incorporated into apair of sunglasses or the 1 so as to display information to the user 112on an interior surface of the sunglasses, or it may be a wrist-mountedor hand-held device worn or carried by a third person, e.g., a trackcoach.

It should further be appreciated that the functionality of thewrist-mounted unit 104 may alternatively be incorporated into thefoot-mounted unit 102, so that the foot-mounted unit 102 may itselfdisplay the relevant information to the user 112. As still anotheralternative, the foot-mounted unit 102 and/or the wrist-mounted unit 104may simply accumulate data during a given time period that the user 112is in locomotion, and may later download the accumulated data to apersonal computer or the like for viewing and/or analysis.

In addition to those described herein, other suitable embodiments offoot-mounted units and wrist-mounted units are described in U.S. Pat.No. 6,018,705, which is hereby incorporated herein by reference in itsentirety.

In the embodiment of FIG. 1, the chest-mounted unit 106 may, forexample, monitor the heart rate of the user 112, and transmitinformation regarding the user's heart rate over a wireless communicatorchannel (e.g., over an RF network) to the wrist-mounted unit 104. In oneillustrative embodiment, the foot-mounted unit 102, the wrist-mountedunit 104, and the chest-mounted unit 106 are all members of the same RFnetwork so that each of the units 102, 104 and 106 is capable ofcommunicating with the other members of the network.

The chest-mounted unit 106 may be any of a number of devices capable ofmonitoring a heart rate or other physiological parameter of interest ofthe user 112, and the invention is not limited to any particular type ofphysiological monitoring device. In some embodiments, for example, thechest-mounted unit 106 may comprise a commercially-available heart ratemonitor such as the type manufactured by Polar Electo Inc. of Woodbury,N.Y., “www.polarusa.corn,” including or modified to include a suitableRF transmitter capable of communicating with the other devices includedin the network. In one embodiment, the chest-mounted device 106comprises a heart-rate monitor that has sufficient intelligence toanalyze the a signal indicative of the user's heartbeat and to calculatea numerical value representing the user's current heart rate, ratherthan merely outputting a raw signal in response to detected heartbeats.In this manner, processing power of the wrist-mounted unit 104 or otherdevice that receives data from the heart-rate monitor is not consumed inperforming these functions.

It should be appreciated that it is not critical that the unit 106 bemounted to the chest of the user 112, and that, in alternativeembodiments of the invention, the unit 106 may instead be mounted toother portions of the user's body where it may sense the physiologicalparameter of interest. The functionality of the chest-mounted unit 106may even be incorporated into either the foot-mounted unit 102 or thewrist-mounted unit 102 in alternative embodiments. For example, thefoot-mounted unit 102 or the wrist-mounted unit 104 may itself include atransducer capable of sensing the heart rate of the user 112. An exampleof a transducer capable of performing this function is a fluid-filledbladder having a sonic transducer associated therewith that monitorsaudio signals sensed through the fluid in the bladder. An example ofsuch a device is described in U.S. Pat. No. 5,853,005, which is herebyincorporated herein by reference in its entirety.

With a system such as that shown in FIG. 1, the user 112 maysimultaneously view information on the wrist-mounted unit 104 regardinghis or her heart rate, energy expenditure, current running or walkingpace and/or speed, average walking or running pace and/or speed, anddistance traveled during a particular outing, or one or more selectedones of the same while the user 112 is running or walking. Suchinformation has not heretofore been available in this manner to a userin locomotion on foot. As used herein, “outing” refers to an exerciseregime engaged in by a user during which the user is in locomotion onfoot, regardless of whether the user is running, walking, jogging, etc.

FIGS. 2A-2B show, respectively, perspective and side views of an exampleembodiment of the foot-mounted unit 102 shown in FIG. 1. As shown inFIG. 2A, the foot-mounted unit 102 may include a housing portion 102 aand a pedestal portion 102 b, and the pedestal portion 102 b may bemounted, for example, to the instep 118 of the user's foot 114. In theillustrative embodiment shown, all of the electronics for thefoot-mounted unit 102 are disposed in the housing portion 102 a, and thepedestal portion 102 b includes a lever 202 which may be depressed torelease the housing portion 102 a from the pedestal portion 102 b. Inthis manner, the user 112 may remove the housing portion 102 a (and theelectronic components included therein) from the pedestal portion 102 bwhile the pedestal portion 102 b remains disposed on the user's shoe(e.g., underneath the shoelaces of the shoe). In this manner, the user112 may use the same housing portion 102 a with two or more differentpedestal portions 102 b disposed on different pairs of shoes, therebyenabling the user 112 to readily transfer the housing portion 102 a fromone pair of shoes to another. In addition, the user may remove thehousing portion 102 a from the pedestal portion 102 b (and the shoe) towash the shoe, or simply for aesthetic reasons. A detailed example of atwo-piece, detachable, foot-mounted apparatus that may be used as thefoot-mounted unit 102 is disclosed in U.S. Pat. No. 6,122,340, which ishereby incorporated herein by reference in its entirety. Alternatively,the foot-mounted unit 102 may be secured to the user's shoelaces orelsewhere using an elastic cord or the like. An example of such afoot-mounted unit 102, which may be secured to a shoelace, is disclosedin U.S. Pat. No. 6,560,903, which is hereby incorporated herein byreference in its entirety.

FIGS. 3A and 3B show, respectively, perspective and side views of anexample embodiment of the wrist-mounted unit 104 shown in FIG. 1. FIG.3B shows the wrist-mounted unit 104 as it may appear when mounted to thewrist 124 (shown in cross-section) of the user 112. In the illustrativeembodiment shown, the wrist-mounted unit 104 includes a housing 302, anda strap 304 for securing the housing 302 to the wrist 124. As shown, thehousing 302 may include a display face 308 on which information may bedisplayed to the user 112. The housing 302 may also have a plurality ofbuttons 306 a-e disposed thereon to enable the user to implement thefunctionality of circuitry (described below in connection with FIG. 4)included in the housing 302.

Referring to FIG. 3B, it is illustrated how the housing 302 may beconfigured so as to be ideally suited, in an ergonomic sense, for arunner or walker. Characters (e.g., ASCII characters) may be displayedon the display face 308 such that tops of and bottoms of the characterscorrespond, respectively, to a top edge 310 and a bottom edge 312 of thedisplay face 308. As shown in FIG. 3B, the display face 308 (which isoriented in the plane P_(a)) may be tilted at an acute (i.e., between0-90°) angle θ_(f) with respect to a plane P_(b) (which passes through awidest portion of the wrist 124 and extends through the forearm of theuser 112). When tilted in this manner, the display face 308 may bereadily viewed by the user 112 without requiring the user 112 to tilthis or her wrist at an angle that is awkward for the user 112 when theuser 112 is running or walking. In addition, in the FIG. 3 embodiment,each of the buttons 306 is disposed substantially in a plane P_(c) (“thebutton plane”) which is oriented substantially perpendicular to adirection in which the buttons 306 are depressed during normaloperation. As shown in FIG. 3B, the button plane P_(c) may also betilted at an acute angle θ_(g) with respect to the plane P_(b) so as tomake the buttons 306 more easily accessible to the user 112 when theuser 112 is walking or running.

The manner in which the display face 308 of the wrist-mounted unit 104is tilted may be defined with reference to a pair of lines L₁ and L₂shown in FIG. 3B. As shown, each of the lines L₁ and L₂ is orientednormal to (i.e., perpendicular with respect to) a surface 314 of theuser's wrist 124. The line L₁ intercepts the top edge 310 of the displayface 308, and the line L₂ intercepts the bottom edge 312 of the displayface 308. In the embodiment of FIG. 38, a distance d₁ (measured alongthe line L₁) between the surface 314 of the user's wrist 124 and theupper edge 310 of the display face 308 is substantially greater than adistance d2 (measured along the line L₂) between the surface 314 of theuser's wrist 124 and the bottom edge 312 of the display face 308. Thedistance d1 may, for example, be 5%, 10%, 25%, 50%, 100%, 200%, 300%, ormore greater than the distance d2. Any of a number of other ratiosbetween the distances d1 and d2 also are possible, and the invention isnot limited to any particular ratio between these distances.

The manner in which the display face 308 of the wrist-mounted unit 104is tilted may also be defined in terms of the respective relationshipsbetween the lines L₁ and L₂ and a pair of lines L₃ and L₄ shown in FIG.3B. As shown, each of the lines L₃ and L₄ is oriented normal to theplane P_(a) in which the display face 308 is disposed. The line L₃passes through the top edge 310 of the display face 308 and the line L₄passes through the bottom edge 312 of the display face 308. Asillustrated, assuming the lines L_(i) and L₂ intercept the lines L₃ andL₄, respectively, the line L₁ forms an angle θ_(a) with respect to theline L₃, and the line L₂ forms an angle θ_(b) with respect to the lineL₄. When the angles θ_(a) and O_(b) in FIG. 3B are measured in aclockwise direction beginning with the lines L₃ and L₄, respectively,each of the angles θ_(a) and θ_(b) is acute (i.e., between 0-90°). Thismay be compared to prior art wrist-watch configurations wherein theplane P_(a) in which the display face 308 is disposed typically isparallel to the plane P_(b) of the user's wrist 124. In such prior artdevices, the angle θ_(a) (when measured as discussed above) is slightlygreater than 0°, and the angle θ_(b) is slightly less than 360°Therefore, in a typical prior art wrist-watch, only the angle θ_(a), andnot the angle θ_(b), (when measured as discussed above) is between0-90°.

Similar to the plane P_(a) in which the display face 308 is disposed,the manner in which the button plane P_(c) of the wrist-mounted unit 104is tilted may be defined with reference to a pair of lines L₅ and L₆shown in FIG. 3B. As shown, each of the lines L₅ and L₆ is orientednormal to the surface 314 of the user's wrist 124. The line L₅intercepts a button in the button plane P_(c) that is closest to thedisplay face 308 (e.g., the button 306 a of FIG. 3A), and the line L₆intercepts a button in the button plane P_(c) that is farthest away fromthe display face 308 (e.g., the button 306 e of FIG. 3A).

In the embodiment of FIG. 3B, a distance d₃ (measured along the line L₅)between the surface 314 of the user's wrist 124 and the button 306closest to the display face 308 is substantially greater than a distanced4 (measured along the line L₆) between the surface 314 of the user'swrist 124 and the button 306 farthest away from the display face 308.The distance d3 may, for example, be 5%, 10%, 25%, 50%, 100%, 200%,300%, or more greater than the distance d4. Any of a number of otherratios between the distances d₃ and d₄ also are possible, and theinvention is not limited to any particular ratio between thesedistances.

The mariner in which the button plane P_(c), of the wrist-mounted unit104 is tilted may also be defined in terms of the respectiverelationships between the lines L₅ and L₆ and a pair of lines L₇ and L₈shown in FIG. 3B. As shown, each of the lines L₇ and L₈ is orientednormal to the button plane P_(c). The line L₇ passes through the button306 disposed closest to the display face 308, and the line L₈ passesthrough the button 306 disposed farthest away from the display face 308.As illustrated, assuming the lines L₅ and L₆ intercept the lines L₇ andL₈, respectively, the line L₅ forms an angle θ_(c), with respect to theline L₇, and the line L₆ forms an angle θ_(d) with respect to the lineL₈. When the angles 0, and θ_(d) in FIG. 3B are measured in a clockwisedirection beginning with the lines L₅ and L₆, respectively, each of theangles θ_(c) and θ_(d) is acute (i.e., between 0-90°). This is incontrast to prior art wrist watches wherein functional buttons aredisposed in planes that are oriented so that at least one of the anglesθ_(c) and θ_(d) (when measured as discussed above) is either exactly 90°(e.g., when buttons are disposed on the side of a watch) or greater than90° (e.g., when buttons are disposed on a watch's face).

Also shown in FIG. 3B is an angle θ_(c) measured between the plane P_(a)in which the display face 308 is disposed and the button plane P_(c).The angle θ_(c), may be any of a number of suitable angles, depending onthe desired ergonomic characteristics of the wrist-mounted unit 104. Forexample, the angle 0, may be acute as shown in FIG. 3B, it may be aperfect right angle, or it may be obtuse (i.e., greater than 90).

FIG. 4 shows a block diagram of various electronic components that maybe disposed in each of the units 102 and 104 in accordance with oneillustrative embodiment of the invention. It should be appreciated,however, that the circuitry within each of the wrist-mounted unit 104and the foot-mounted unit 102 may take on any of a number of alternativeconfigurations, and the invention is not limited to the particularcircuitry or components described herein for performing the variousfunctions. Also shown in FIG. 4 are additional components of a networksystem that may be employed in connection with an embodiment of theinvention. In particular, the system of FIG. 4 further includes acomputer 428 and a network server 442, each coupled to a network cloud440.

As shown, the foot-mounted unit 102 may include a processor 422, as wellas a sensor 418, a user interface 416, a transceiver 420, and a memory424 coupled to the processor 422. The wrist-mounted unit 104, mayinclude both a user interface (UI) processor 408 and an arithmetic,radio, and calibration (ARC) processor 410, as well as memories 402 and404 (coupled to the UI processor 408 and the ARC processor 410,respectively), a user interface 406 (coupled to the UI processor 408), adisplay 412 (coupled to the UI processor 408), and a transceiver 414(coupled to the ARC processor 410). The computer 428 may include aprocessor 430, a memory 432, a transceiver 434, a user interface 436,and a display 438. In one embodiment, the computer 428 is a personalcomputer (PC) to which the user 112 has access. The network server 442is configured to communicate (via the network cloud 440) with thecomputer 428, as well as with a number of other computers similar thecomputer 428.

Each of the processors 408, 410, 422, and 430 in the FIG. 4 embodimentmay be any processor, controller, hard wired circuit, or the like thatis capable of performing at least some of the functions discussedherein, and the invention is not limited to the use of any particulartypes of processors. In addition, in alternative embodiments, thefunctionality of each of the processors shown in FIG. 4 may be performedby one or more of the other processors shown and/or may be distributedacross one or more additional processors. In addition, the functionalityof the UI and ARC processors 408 and 410 may be implemented using only asingle processor. In one embodiment, the UI processor 408 may comprise,for example, part number NSM63188, manufactured by OKI Electronics; theARC processor 410 may comprise, for example, part number PIC16C63,manufactured by Microchip, Inc.; and the processor 422 may comprise, forexample, part number PIC 16C73, manufactured by Microchip, Inc.

The network cloud 440 may, for example, represent the Internet. Ofcourse, it may alternatively represent any other network scheme. Thenetwork server 442 and the computer 428 therefore may communicate withone another, and share data and responsibility for various functionalattributes with one another in any manner known in the art. In oneembodiment, the network server 442 serves as an application serviceprovider for the computer 428. It should be appreciated, however, thatsuch a configuration is not critical, as the network server 442 maylikewise serve solely as a repository for the storage and retrieval ofinformation. User-specific information stored on the network server 442may be accessed, for example, using a user-specific (identification) ID.Access to this information may also require a password or successfulimplementation of some other security measure.

The user interface 406 may correspond, for example, to the buttons 306shown in FIGS. 3A-B, and the user interface 416 may correspond, forexample, to the button 204 shown in FIG. 2A. It should be appreciated,however, that the invention is not limited in this respect, and thatdifferent, fewer, or additional user interface buttons or other suitableuser-interface devices or circuitry (e.g., voice activated interfacedevices) may alternatively be employed. The memories 402, 404, 424, and432 may each store a plurality of instructions which, when executed bythe processor coupled thereto, may perform one or more of the routinesdescribed below. The structure and capabilities of the variouscomponents of the computer 428 (i.e., the processor 430, memory 432,user interface 436, and display 438), as well as the network server 442,are well understood in the art, and therefore will not be described infurther detail.

As discussed above, the sensor 418 in the foot-mounted unit 102 may beany of a number of devices capable of monitoring the motion of theuser's foot 114 to determine, for example, time periods that the user'sfoot 114 is in contact with the ground or is in the air. In oneillustrative embodiment, a sensor which does not require compressionforces thereon to sense motion is employed so as to reduce the wear andtear on the sensor 418. Because it is not necessary for such a sensor tobe disposed between the bottom surface 116 of the user's foot 114 andthe surface 108 on which the user 112 is walking or running, the entirefoot-mounted unit 102 (including the sensor 418) may be mounted abovethe bottom surface 116 of the user's foot 114. For example, the entirefoot-mounted unit 102 may be mounted on the instep 118 of the user'sfoot 114 as shown in FIG. 1.

In such an embodiment, the foot-mounted unit may readily be disposed onprefabricated footwear (e.g., a running shoe), and specialized footwearhaving one or more sensors disposed so as to be located underneath theuser's foot 114 need not be employed. It should be appreciated, however,that the invention is not limited in this respect, and that sensors suchas contact switches, piezoelectric, pressure sensitive transducers, orthe like, that are disposed between the user's foot 114 and the surface108 to sense motion of the user's foot 114 with respect to the surface108 may be employed in some embodiments of the invention.

As discussed below in more detail, an output signal from the sensor 418may be provided to the processor 422, and the processor 422 may analyzethe received signal in accordance with an algorithm stored in the memory424. Data generated by the processor 422 in response to this analysis,may be transmitted by the transceiver 420 (e.g., over an RFcommunication channel) to the transceiver 414 of the wrist-mounted unit104. It should be appreciated, of course, that other wirelesstransmission media may alternatively be employed, and the invention isnot limited to the use of an RF communication channel as the wirelesscommunication link between the units 102 and 104. It should also beappreciated that, in some embodiments of the invention, the transceiver420 may comprise only a transmitter and the transceiver 414 may compriseonly a receiver, and that the invention is not limited to embodimentswherein transceivers are employed in both units.

When information from the foot-mounted unit 102 is received by thetransceiver 414 of the wrist-mounted unit 104, this information may beprocessed by the ARC processor 410 to calculate various parameters to bedisplayed to the user 112 on the display 412. Any of a number ofparameters may be calculated based upon the information received fromthe foot-mounted unit 102, and the invention is not limited to thecalculation of any particular parameters. In one illustrativeembodiment, the ARC processor 410 is responsible for calculating boththe instantaneous and average pace of the user 112, the distancetraveled and calories expended by the user 112 during a given period,and the total time interval during which the distance, pace, and caloriemeasurements are calculated (i.e., a chronograph). In alternativeembodiments, one or more of these parameters may instead be calculatedby processor 422 of the foot-mounted unit 102, and the pre-calculatedvalues may then be passed to the wrist-mounted unit 104.

After the ARC processor 410 calculates or receives the aforementionedparameters, the calculated parameters may be passed to the UI processor408 which is responsible for displaying them on the display 412. The UI408 processor may also perform standard time and date keeping functions,and may display time and date information on the display 412 eitheralong with, or separately from, the parameters received from the ARCprocessor 410.

By properly manipulating the user-interface 406 (e.g., by pushingselected ones of the buttons 306 a-e), the user 112 may, for example,start or stop the time period during which data received from thefoot-mounted unit 102 is accumulated, may alter the display modes of theUI processor 408/display 412, or may otherwise enable the user 112 tocontrol of the functionality of the UI processor 408 and/or the ARCprocessor 410.

As shown, the transceiver 420 and/or the transceiver 414 may alsocommunicate with the transceiver 434 of the computer 428 via a wirelesscommunication link. As discussed below in more detail, thiscommunication link enables information to be downloaded from thewrist-mounted unit 104 and/or the foot-mounted unit 102 to the computer428, and possibly, in turn, to the network server 428. Thiscommunication link also enables the user 112 to operate software runningon the computer 428 and/or network server 442 to analyze received dataand/or to select operating parameters for the wrist-mounted unit 104and/or foot-mounted unit 102, which parameters then may be transmittedto those devices via the transceiver 434.

As discussed below in more detail, the parameters calculated by thewrist-mounted unit 104 and/or the foot-mounted unit 102, as well asparameters calculated by or calculated in response to a signal from thechest-mounted unit 106, may be analyzed in various ways so as to providefeedback to the user during or after an exercise session by the user.During an exercise session, such analysis may be performed by theprocessor(s) in the foot-mounted unit 102 and/or the wrist-mounted unit104, and feedback may be provided to the user by either device. Forexample, the user may receive a textual message on the display 412, mayreceive an audio, vibrational, or visual (e.g., a light) alert via theuser interface 406 or the user interface 416, or may receive any otherindication responsive to one or more identified characteristics inanalyzed data. As used herein, the phrase “indication to the user”refers to the output provided by any one or any combination of theseuser-feedback methods or any other user-feedback method known in theart.

The system of FIG. 4 may be designed such that multiple users (e.g.,multiple family members or track team members) may employ the sameequipment, but so that user-specific data and operating parameters maybe selectively stored and accessed. This may be accomplished, forexample, by requiring each user to input a particular ID code or name,or to select an appropriate ID code or name from a list thereof, andpermitting access to or logging information and parameters based uponthat ID code or name. The ID code or name may, for example, be enteredor selected using any of the devices in the system, and then may betransmitted, if necessary, to the other devices.

FIG. 5 shows an illustrative example of a motion sensor that may beemployed as the sensor 418 in the FIG. 4 embodiment. In the exampleshown, the sensor 418 includes an accelerometer 502, and an amplifiercircuit 504 (including a high-pass filter 504 a integrated therein). Theaccelerometer 502 may comprise any of numerous devices or circuitscapable of detecting acceleration of the user's foot 114 and producingan output signal in response thereto, and the invention is not limitedto the use of any particular type of accelerometer. In one illustrativeembodiment, for example, the accelerometer 502 comprises part numberADXL250, manufactured by Analog Devices, Inc. Again, as mentioned above,it should be appreciated that the invention is not limited toembodiments that employ an accelerometer as the sensor 418, and thatother suitable devices may alternatively be used.

FIG. 6 shows a partial-schematic, partial-block diagram of an exampleembodiment of the sensor 418 of FIGS. 4 and 5, in addition to theprocessor 422 of FIG. 4. As shown in FIG. 6, the amplifier circuit 504may include a capacitor C1, resistors R1-R4, and an operationalamplifier A. The operational amplifier A may, for example, comprise partnumber MA418, manufactured by MAXIM, Inc.

In the example embodiment of FIG. 6, the resistor R1 is connectedbetween the input capacitor C1 and the inverting input of theoperational amplifier A, and the resistor R2 is connected in feedbackbetween the inverting input and an output 606 of the operationalamplifier A. The combination of the input capacitor C1 and the resistorR1 form a high-pass filter, and the configuration of the resistors R1and R2 place the amplifier circuit 504 in an inverting configurationwith a gain-factor dependent on the relative values of the resistors R1and R2. In the embodiment shown, the resistor R2 has a value of 1mega-ohm, and the resistor R2 has a value of 150 kill-ohms, so that thegain factor of the amplifier circuit 504 is approximately (−6.6). Inaddition, in the embodiment shown, the capacitor C1 has a value of 0.15microfarads, so that the high-pass filter section 504 a of the amplifiercircuit 504 cuts off input signal frequencies that are less thanapproximately 7.07 hertz.

In the FIG. 6 embodiment, the resistor R3 is connected between a VCCsupply node 610 and the non-inverting input of the operational amplifierA, and the resistor R4 is connected between the non-inverting input ofthe operational amplifier A and a ground node 612 of the circuit. TheVCC supply node 610 may be maintained at approximately “5” volts (e.g.,regulated from a six-volt battery) in relation to the ground node 612,and the resistors R3 and R4 may be of equal values (e.g., “50” kill-ohmseach) so that the voltage at a node 608 between the resistors R3 and R4,which is connected to the non-inverting input of the amplifier A, ismaintained approximately midway between the voltage at the VCC supplynode 610 and the ground node 612 (e.g., at approximately “2.5” volts).It should be appreciated, of course, that any other suitable supplyvoltage (e.g., “3” volts) may alternatively be applied between the VCCsupply node 610 and the ground node 612, and that the invention is notlimited to the use of a “5” volt supply.

As shown in FIG. 6, the node 608 is also coupled to a reference input604 of the processor 422, and the output 606 of the operationalamplifier A is connected to a signal input 602 of the processor 422. Inone embodiment, the processor 422 includes on-board memory, AIDconverters, and timers. Therefore, in such an embodiment, the memory 424of the embodiment of FIG. 4 may be incorporated into the same micro-chipas the processor 422. It should be appreciated, however, that theinvention is not limited in this respect, and that any of theabove-noted on-board elements may alternatively be employed external tothe controller 422.

In the circuit of FIG. 6, when the VCC supply node 610 is maintained atfive volts, the input 604 of the processor 422 may serve as azero-reference that is maintained at approximately “2.5” volts (asdescribed above), and the input 602 of the processor 422 may serve as avariable input that fluctuates between “0” and “0.5” volts. Theprocessor 422 may, for example, sample the voltage at each of the inputs602 and 604 at a rate of approximately “500” samples per second, andconvert each of these samples into a respective 8-bit unsigned digitalvalue. Therefore, for each sample taken at the inputs 602 and 604, thevoltage at each of these inputs, with reference to a digital groundinput (not shown) of the processor 422, will be converted to a “level”between “0” and “255.”

Because of the voltage division performed by the resistors R3 and R4,each sample taken at the input 604 remains close to the level “128” ofthe “255” possible levels. Each sample taken at the input 602 fluctuatesbetween the level “0” and the level “255” depending on the voltagegenerated by the accelerometer 502 in response to acceleration thereof.A positive acceleration of the accelerometer 502 along the accelerationsensing axis 110 may, for example, cause the sample taken at the input604 to be some level between the levels “129” and “255,” whereas anegative acceleration of the accelerometer 502 along the accelerationsensing axis 110 (see FIGS. 1 and 2B) may, for example, cause the sampletaken at the input 604 to be some level between the levels “0” and“127.”

FIG. 7 shows an example of signals 712 and 710 that may be provided bythe sensor 418 of FIG. 6 to the inputs 602 and 604, respectively, of theprocessor 422 when the user 112 is in locomotion on foot. As shown, thesignal 710 may be converted by the processor 422 into a digital value ofapproximately “128” on the scale of “0” to “256.” It should beappreciated that, due to the voltage division performed by the resistorsR3 and R4, the voltage at the input 604 may change slightly in responseto changes in the voltage at the VCC supply node 610. The level of thesample taken at the input 604 may therefore deviate slightly from thelevel “128” when such changes in the supply voltage occur.

As also shown in FIG. 7, the signal 712 may fluctuate dynamicallybetween the level “0” and the level “256” in response to movement of theuser's foot 114 that occur when the user is walking or running. When thelevel of the signal 712 is greater than the level of the signal 710,this indicates that the accelerometer is sensing a positive accelerationalong the acceleration sensing axis 110, and when the level of thesignal 712 is lower than the level of the signal 710, this indicatesthat the accelerometer 502 is sensing a negative acceleration along theacceleration axis 110.

In accordance with various aspects of the present invention, the signals710 and 712 generated during strides taken by the user 112 may beanalyzed, and particular characteristics of the signals 710 and 712 maybe identified which are indicative of particular occurrences during eachfootstep. As shown in FIG. 7, for example, the signals 710 and 712 maybe analyzed: (1) to identify occasions when the user's toe first leavesthe surface 108 after having been in contact with the ground during afootstep (e.g., “toe-off events” 704 a and 704 b), and (2) to identifyoccasions when the user's heel first impacts the ground after havingbeen airborne (e.g., “heel-strike events” 702 a and 702 b). When theuser 112 is wearing shoes, the term “toe,” as used herein, refers to thefront-most portion of the user's shoe that accommodates the user's toes,and the term “heel,” as used herein, refers to the rear-most portion ofthe user's shoe that accommodates the user's heel.

In accordance with one aspect of the invention, the toe-off events 704may be identified by monitoring the signals 710 and 712 for: (a)characteristics that indicate a toe-off event 704 may have potentiallyoccurred, and (b) characteristics that indicate the foot 114 isdefinitely airborne (i.e., when no portion of the foot 114 is in contactwith the surface 108). The latter characteristics are referred to hereinas the signal's “air signature” 706.

One characteristic in the signals 710 and 712 that may be indicative ofa “potential” toe-off event is large inflection in the signal 712.Therefore, in one embodiment of the invention, inflections in the signal712 are monitored to identify and to continuously update theidentification of a largest inflection to occur in the signal 712subsequent to the most recent heel-strike event 702.

As shown in FIG. 7, an air signature 706 of the signal 712 may beidentified between each toe-off event 704 and the subsequent heel-strikeevent 702. The air signature 706 may, for example, be an identifiedperiod of relative smoothness in the signal 712. When it is determinedthat the foot 114 is airborne (e.g., an air signature 706 isidentified), the most recently identified potential toe-off event isidentified as an “actual” toe-off event 704. An example of a routinethat may be performed by the processor 422 to monitor the signals 710and 712 to identify occurrences of actual toe-off events 704 by lookingfor potential toe-off events and air signatures 706 in the signals isdescribed below in connection with FIGS. 17-19.

In accordance with another aspect of the invention, heel-strike events702 may be identified by monitoring the signals 710 and 712 for sudden,sharp inflections following the relatively smooth condition of thesignal 712 generated while the foot is airborne. In accordance with oneembodiment of the invention, characteristics of the signals 710 and 712are monitored to determine whether the signals satisfy at least one of aplurality of predetermined criteria consistent with the occurrence of aheel-strike event 702. An example of a routine that may be performed bythe processor 422 to monitor the signals 710 and 712 for heel-strikeevents 702 in this manner is described below in connection with FIGS.21, and 23-25.

As shown in FIG. 7, the period of a complete footstep of the user 112(i.e., a step time (Ts)) may be measured between the identifiedheel-strike events 702 of the user 112 (e.g., between the heel-strikeevents 702 a and 702 b). The portion of each measured step time (Ts)during which the user's foot 114 is in contact with the surface 108(i.e., a foot contact time (Tc)) may be measured between each detectedheel-strike event 702 and a subsequently-detected toe-off event 704(e.g., between the heel-strike 702 a and the toe-off 704 a). Finally,the portion of each measured step time (Ts) during which the user's foot114 is airborne (i.e., a foot air time (Ta)) may be measured betweeneach detected toe-off event 704 and a subsequently-detected heel-strikeevent 702 (e.g., between the toe-off 704 a and the heel-strike 702 b).Thus, for each complete footstep taken by the user 112, an accuratemeasurement may be made of each step time (Ts) of the user 112, as wellas the portions of that step time (Ts) attributable to foot contact time(Ts) and foot air time (Ta). As discussed in more detail below, thisinformation may be used by the processor 422 or the foot-mounted unit102 and/or the ARC processor 410 of the wrist-mounted unit 104 toaccurately calculate the speed and/or pace of the user 112, the distancetraveled by the user 112, the energy expended by the user 112, etc.,during the corresponding footstep taken by the user 112.

As used herein, a “complete footstep” means a movement cycle duringwhich the foot of a user 112 begins in a particular position and againreturns to that same position. For example, complete footsteps of theuser 112 may be measured between consecutive “heel-strike events” (i.e.,occasions when the user's heel 120 impacts the surface 108), or betweenconsecutive “toe-off events” (i.e., occasions when the user's toe 122leaves the surface 108).

After each heel-strike event 702 (e.g., the heel-strike event 702 a), wehave recognized that the foot 114 of the user 112 will necessarily be onthe ground for at least a minimum period of time, and that it is notnecessary during this period of time to analyze the signals 710 and 712to identify potential occurrences of a toe-off event 704. Therefore, asshown in FIG. 7, it is possible to “ignore” the signals during thisparticular period of time. These periods during which the signals 710and 712 may be ignored are illustrated in FIG. 7 as “ignore times” 708 aand 708 b.

In accordance with another aspect of the invention, radio transmissionsbetween the foot-mounted unit 102 and the wrist-mounted unit 104 may bemade only during the ignore times 708 because the processor 422 need notbe employed to monitor the signals 710 and 712 during these time periodsSimilarly, according to another aspect of the invention, calculationsinvolving data accumulated by the foot-mounted unit 102 may be made onlyduring the ignore times 708, thereby consuming processing power onlyduring time periods when the signals 710 and 712 need not be activelyanalyzed.

It is known that the instantaneous pace (Pace_(NST)) of a user 112 inlocomotion is linearly related to the foot contact time (Tc) measuredduring a single footstep (Tc_(FS)) of the user 112. In particular, theinstantaneous pace of the user 112 may be defined by the equation:Pace_(INST) =Mp*Tc _(FS) +Bp,  (1)wherein Mp and Bp are constants representing the slope and Y-interceptpoints of a graph of Pace vs. Tc, and the symbol “*” is themultiplication operator. In light of this relationship, the average paceof the user during a given time period (Pace_(AVE)) may be calculated byreplacing the individual foot contact time (Tc_(FS)) in the equation (1)with the average value of several individual foot contact times duringthe measured time period (Tc_(AVE)) above to yield the equation:Pace_(AVE) =Mp*Tc _(AVE) +Bp  (2)

As discussed in U.S. Pat. No. 6,018,705, the constants Mp and Bp may bedifferent when the user 112 is running than when the user is walking,and each value of Mp and Bp (for both walking or running) may vary fromindividual to individual. The relationships between Pace and Tc forwalking and running (for either instantaneous or average pacecalculations) may be represented by the following two equations:Pace=Mp _(W) *Tc _(W) +Bp _(W) Pace=Mp _(R) *Tc _(R) +Bp _(R)  (3)

The graph of FIG. 8 includes lines 802 and 804, which represent the tworelationships presented in the equations (3). In particular, the line802 represents the relationship between a measured foot contact time(Tc) (either a single value or an average value) of the user 112 and thecorresponding pace (either instantaneous or average) of the user 112when the user is walking, and the line 804 represents the relationshipbetween a measured foot contact time (Tc) of the user 112 and thecorresponding pace of the user 112 when the user is running. Althoughlinear relationships between foot contact time (Tc) and pace areillustrated in FIG. 8, it should be appreciated that higher-orderpolynomials may alternatively be used to define these relationships.

We have discovered that it can be determined whether a user, e.g., theuser 112, is walking or running during a particular footstep taken bythe user 112, simply by comparing the foot contact time (Tc) of the user112 measured during the footstep with a single threshold value.Therefore, in connection with each measured foot contact time (Tc), itis possible to determine which of the equations represented by the lines802 and 804 should be used to calculate the user's pace simply bycomparing the measured foot contact time (Tc) with this threshold value.

In the example of FIG. 8, the threshold value used to discern whetherthe user 112 is walking or running is “420” milliseconds (ins). Asshown, the lines 802 and 804 are divided into solid portions 802 a and804 a and dashed portions 802 b and 804 b. The solid portions 802 a and804 a of the lines 802 and 804, respectively, represent the equationsthat may be used to calculate the user's pace based upon measured footcontact times. When, for example, a measured foot contact time (Tc) isless than “420” ms, it may be determined that the user 112 is running,and the solid portion 804 a of the line 804 may be used to calculate theuser's pace. When, on the other hand, a measured foot contact time (Tc)is greater than “420” ins, it may be determined that the user 112 iswalking, and the solid portion 802 a of the line 802 may be used tocalculate the user's pace.

In the example of FIG. 8, the dashed portion 802 b of the line 802 isnever used to calculate the user's pace while the user 112 is walkingbecause it corresponds to a range of foot contact times that typicallydo not occur when the user 112 is walking. Similarly, the dashed portion804 b of the line 804 is never used to calculate the user's pace whilethe user 112 is running because it corresponds to a range of footcontact times that typically do not occur when the user 112 is running.

In another embodiment of the invention, for each given footstep, one of:(1) the ratio of the measured foot contact time (Tc) to the measuredstep time (Ts) (i.e., Tc/Ts); (2) the ratio of the measured foot airtime (Ta) to the measured step time (Ts) (i.e., Ta/Ts); or (3) the ratioof the measured foot contact time (Tc) to the measured foot air time(Ta) (i.e., Tc/Ta), or the inverse value of any such ratios, may becompared with a single threshold value to determine whether the user isrunning or walking. In one embodiment, the threshold value chosenrepresents the point when the user's foot is in the air and is on theground for equal time periods during a complete footstep (i.e., whenTc=Ta). These threshold values may be readily calculated given that, foreach complete footstep, Ts=Tc+Ta. If the user's foot is on the groundlonger than it is in the air during a complete footstep, it may bedetermined that the user is walking Conversely, if it is determined thatthe user's foot is in the air longer than it is on the ground, it may bedetermined that the user is running.

In the example shown in FIG. 8, the slopes Mp_(W) and Mp_(R) of thelines 802 and 804, respectively, are positive, indicating that longerfoot contact times correspond to slower paces and shorter foot contacttimes correspond to faster paces. Each of the constants Bp_(W) andBp_(R) is negative in the example shown. However, it should beappreciated that, because speed and pace are related according to theequation: Speed=1/Pace, the portions of the lines 802 and 804 that areclose to or fall below the “0” pace level are never used, as a pace of“0” corresponds to an infinite speed. In theory, the relationships (forwalking and running) between Pace and Tc are non-linear near the originof the graph of FIG. 8. However, these non-linear portions of therelationships fall outside the possible range of foot contact times forhuman beings. Within the possible range of foot contact times for humanbeings, the relationships between Pace and Tc for both walking andrunning are, in fact, substantially linear.

As mentioned above, in the graph of FIG. 8, the values of the constantsMp_(R), Mp_(W), Bp_(R), and Bp_(W) may vary from individual toindividual. The curves 802 and 804 of FIG. 8 may be optimized for aparticular user 112 by having the user 112 run or walk a known twice, atdifferent speeds, while measuring the average foot contact time(Tc_(AVE)), as described below, during each of the two outings. Bymeasuring the time taken to run the known distance during each outing,the average pace (Pace_(AVE)) of the user may be calculated for each ofthe two outings. Therefore, using an appropriate one of the equations(3) (depending on whether the user was walking or running during the twooutings), two points may be identified on the graph of FIG. 8. Oncethese two points are identified, if the user 112 walked during bothoutings, the line 802 may be interpolated through the two points, and,if the user 112 ran during both outings, the line 804 may beinterpolated through the two points.

Unfortunately, any error in one or both of these points cansignificantly impact the accuracy of the calibration performed usingthis technique. Therefore, in some embodiments, three, four, or morepoints may be obtained during corresponding outings at different speeds,and a “best fit” line may be plotted through all of the obtained pointsto yield a more accurate Pace vs. Tc line for walking (if the user 112walked during all of the outings) or for running (if the user 112 randuring all of the outings).

As illustrated in FIG. 9, we have recognized that the step length (Ls)of the user 112 (i.e., the distance traversed during each stride takenby one foot of the user) is approximately equal to the foot contact time(Tc) measured during the stride multiplied by the speed at which theuser 112 is traveling (Speed), as illustrated by the equation:Ls=Tc*Speed  (4)

In addition, based upon empirical measurements, we have discovered thatthe step length (Ls) of the user 112 is also (substantially) linearlyrelated to the speed of the user 112 over a reasonable range of speedsfor running or walking, according to the equations:Ls=Mstep_(W)*Speed+Bstep_(W) Ls=Mstep_(R)*Speed+Bstep_(R)  (5)

These substantially linear relationships are illustrated in FIG. 10.Curves 1002 and 1004 in FIG. 10 illustrate typical relationships betweenthe user's step length (Ls) and the walking speed (curve 1002) orrunning speed (curve 1004) of the user 112. As illustrated by line 1006in FIG. 10, the relationship between the step length (Ls) of the user112 and the speed of the user 112 is substantially linear through areasonable range of walking speeds (e.g., between 2.5 and 4.5 miles perhour (MPH)). Similarly, as illustrated by line 1008 in FIG. 10, therelationship between the step length (Ls) of the user 112 and the speedof the user 112 also is substantially linear through a reasonable rangeof running speeds (e.g., between 5 and 12 MPH). As shown, the line 1006has a slope equal to Mstep_(W) and a Y-intercept equal to Bstep_(W), andthe line 1008 has a slope equal to Mstep_(R) and a Y-intercept equal toBstep_(R).

We have further discovered, again based upon empirical measurements,that the values of the slopes Mstep_(W) and Mstep_(R) of the lines 1006and 1008, respectively, are substantially constant across a largeportion of the population, and that the values of the Y-interceptsBstep_(W) and Bstep_(R) for the lines 1006 and 1008, respectively, aregenerally the only values in equations (5) which vary significantly fromperson to person. By combining equations (3) and (4) and (5), we havediscovered that the values Mp_(W) and Mp_(R) in the equations (3) areequal to 1/Bstep_(W) and 1/Bstep_(R), respectively, and that the valuesBp_(W) and Bp_(R) in the equations (3) are equal to −Mstep_(W)/Bstep_(W)and −Mstep_(R)/Bstep_(R), respectively. Equation (3) therefore may berewritten as follows:Pace=1/Bstep_(W) *Tc _(W) −Mstep_(W) /Bstep_(W) Pace=1/Bstep_(R) *Tc_(R) −Mstep_(R) /Bstep_(R)  (6)

FIG. 11 shows the lines 802 and 804 of the Pace vs. Tc lines of FIG. 8,and also illustrates the above-calculated replacement values of Mp_(W),BP_(W), Mp_(R), and Bp_(R) included in the equations (6). By setting thevalue of Pace in the equations (6) to be equal to “0,” and then solvingthe equations (6) for Tc, it is discovered that the locations of theconstant X-intercept points 1106 and 1108 of the lines 802 and 804,respectively, are equal to Mstep_(W) and Mstep_(R), respectively. Asdiscussed above, our empirical measurements have revealed that thesevalues are relatively constant across a substantial cross-section of thepopulation. Therefore, the X-intercept points of each of the lines 802and 804 (i.e., points 1106 and 1108, respectively) do not changesignificantly from person to person, so that the lines 802 and 804simply pivot about the respective points 1106 and 1108 on the graph ofFIG. 11. Our empirical measurements have revealed that the constantX-intercept value for the “walking” line 802 (Mstep_(W)) is equal toapproximately “200” milliseconds (ms), and the constant X-interceptvalue for the “running” line 804 (Mstep_(R)) is equal to approximately“75” milliseconds (ms).

This discovery is significant because each of the Pace vs. Tc lines 802and 804 for a particular user 112 may be plotted by locating only asingle point on the graph of FIG. 11 when the user 112 is walking orrunning at a comfortable pace, and interpolating a line between themeasured point and the corresponding constant X-intercept point 1106 or1108.

When a Pace vs. Tc line (such as one of the lines 802 and 804 of FIG.11) is plotted by identifying two or more points and interpolating aline therebetween, it should be appreciated that the user 112 must walkor run outside of the user's most comfortable pace for walking orrunning to obtain at least one of these points. The point(s) obtainedwhen the user is not running or walking at the user's most comfortablepace may not be at the optimal location on the Pace vs. Tc graph, andtherefore may cause the line interpolated therethrough to be at a lessthan optimal location. Thus, the single-point calibration schemediscussed above is advantageous not only because the user 112 isrequired to walk or run a known distance only a single time, but alsobecause the user 112 may walk or run the known distance at the user'smost comfortable pace, thereby possibly obtaining more accuratecalibration information than if one of the points on the Pace vs. Tcgraph was obtained when the user was walking or running at a pace otherthan the user's most comfortable pace.

As is well known, speed (miles/minute) is related to pace (minutes/mile)according the following equation:Speed=1/Pace  (7)

Therefore, in light of the equations (3), speed may be defined accordingto the following equations:Speed=1/(Mp _(W) *Tc _(W) +Bp _(W)) Speed=1/(Mp _(R) *Tc _(R) +Bp_(R))  (8)

When Speed, defined according to the equations (8), is plotted against1/Tc, curves 1202 and 1204 shown in FIG. 12 may be obtained. As shown inFIG. 12, the relationships between Speed and 1/Tc while the user 112 iswalking (curve 1202) and while the user is running (curve 1204) appearto be substantially non-linear, as compared to the relatively linearrelationships between Pace and Te illustrated in FIGS. 8 and 11.

FIG. 13 illustrates the same relationship as does FIG. 12, but uses theunits miles-per-hour (MPH) on the Speed axis, rather thanmiles-per-minute (i.e., a factor of “60” adjustment). In addition, thegraph of FIG. 13 focuses only on the relative portion of the graph ofFIG. 12 that corresponds to reasonable ranges of walking and runningspeeds for a human being. As shown, FIG. 13 illustrates that, within areasonable range of walking speeds (e.g., between “3” and “4” MPH), thecurve 1202 is substantially linear. Similarly, between a reasonablerange of running speeds (e.g., between “7.5” and “10.8” MPH), the curve1204 also is substantially linear. Therefore, in accordance with anaspect of the present invention, a line 1302, which passes through theaforementioned substantially linear portion of the curve 1202, may usedto define an approximation of the relationship between Speed and 1/Tcwhen the user 112 is walking, and a line 1304, which passes through theaforementioned substantially linear portion of the curve 1204, may beused to define an approximation of the relationship between Speed and1/Tc when the user 112 is running. As shown, the lines 1302 and 1304 maybe defined using the equations:Speed=(1/Tc)*Ms _(W) +Bs _(W) Speed=(1/Tc)*Ms _(R) +Bs _(R)  (9)wherein Ms_(W) and Ms_(R) are constants representing the slopes of thelines 1302 and 1304, respectively, and Bs_(W) and Bs_(R) are constantsrepresenting the Y-intercepts of the lines 1302 and 1304, respectively.Although linear relationships between the inverse of foot contact time(1/Tc) and speed are illustrated in FIG. 13, it should be appreciatedthat higher-order polynomials may alternatively be used to define theserelationships.

Unfortunately, because the universal pivot points 1106 and 1108 of FIG.11 are defined at a pace equal to “0,” such pivot points cannot beidentified on the graph of FIG. 13 because, as is evident from theequation (7), a pace of “0” corresponds to an infinite speed. When asingle point calibration scheme is used wherein a single point on thegraph of FIG. 11 is identified for either walking or running and a lineis interpolated between the identified point and one of the universalpivot points 1106 and 1108, however, it is possible to pick a few (atleast two) points from the interpolated “walking” line 802 or theinterpolated “running” line 804 of FIG. 11 that fall within a reasonablerange of paces for running or walking. These selected points may then betransferred onto the graph of FIG. 13, and a line may be interpolatedbetween the transferred points to obtain a corresponding one of thelines 1302 and 1304 shown in FIG. 13.

As discussed above, the foot-mounted unit 102 and the wrist-mounted unit104 may communicate using either a one-way or a two-way communicationlink. When a two-way communication link is employed, any of thecalibration values discussed herein may be calculated (based upon userinputs regarding the starting and stopping of a calibration procedure)using the wrist-mounted unit 104, and may be subsequently communicatedfrom the wrist-mounted unit 104 to the foot-mounted unit 102.Alternatively, commands instructing the foot-mounted unit 102 to startand stop a calibration procedure at appropriate times may becommunicated from the wrist-mounted unit 104 to the foot-mounted unit102. In either case, it is possible to store calibration values in thefoot-mounted unit 102 based upon user input to the wrist-mounted unit(e.g., using one or more of the buttons 306).

Of course, it is also possible for a user to input calibration commandsdirectly to the foot-mounted unit 102, and thereby cause such values tobe calculated by and stored in the foot-mounted unit 102 without anyintervention by the wrist-mounted unit 104. We recognize, however, thatit may be more convenient and yield more accurate calibration resultsfor the user 112 to input such commands to the wrist-mounted unit 104,rather than the foot-mounted unit 102. This is true because the user isable to input commands to the wrist-mounted unit 104 while inlocomotion, as opposed to having to stop walking or running and bendover to input such commands to the foot-mounted unit 102.

Regardless of their origin, once appropriate calibration value obtained,the processor 422 of the foot-mounted unit 102, for example, may usethese calibration values (as explained below) to perform calculationsinvolving the user's instantaneous and average pace and/or speed, aswell as calculations involving the distance traveled by the user duringa given outing. The results of these calculations then may be displayedon the foot-mounted unit 102 and/or transmitted to the wrist-mountedunit 104 for display to the user 112.

In alternative embodiments of the invention, the ARC processor 410 ofthe wrist-mounted unit 104, or another processor distinct from both thefoot-mounted unit 102 and the wrist-mounted unit 104, may insteadperform these calculations. For example, each measured foot contact time(Tc) and step time (Ts) may be transmitted from the foot-mounted unit102 to the wrist-mounted unit 104 or another device, and the ARCprocessor 410 the wrist-mounted unit 104 or a processor in the otherdevice may perform all of the calculations described herein based thesevalues. In fact, in some embodiments, the signal from the sensor 418 maybe the only information that is transmitted (wirelessly) from thefoot-mounted unit 102 to the wrist-mounted unit 104 or another device,and the wrist-mounted unit 104 or the other device may itself performthe analysis of the sensor signal during which foot contact times, etc.,are measured, as well as performing all or some of the othercalculations described herein involving such measured values. In any ofthese alternative embodiments, appropriate calibration values may beboth calculated by and stored directly in the wrist-mounted unit 104.

The user 112 may instruct the foot-mounted unit 102 to start and stopperforming such calculations either by providing appropriate inputsdirectly to the foot-mounted unit 102 (e.g., using the button 204 or oneor more other buttons on the foot-mounted unit 102), or by providingappropriate inputs to the wrist-mounted unit 104 (e.g., by depressingone or more of the buttons 306), which then can transmit theinstructions to the foot-mounted unit 102. Examples of how theabove-mentioned calculations may be performed by the processor 422 willnow be provided, recognizing, of course, that the invention is notlimited to embodiments wherein the processor 422 is the entity thatperforms these calculations.

While the user 112 is walking or running during an outing, for eachcomplete footstep by the user, both the step time (Ts) of the footstepand the portion of that step time (Ts) constituting the foot contacttime (Tc) of the footstep may be measured as described herein. Asdiscussed above in connection with FIG. 8, each measured foot contacttime (Tc) may be compared with a threshold value (e.g., 420milliseconds), and, based upon that comparison, may be categorized as a“walking” foot contact time (Tc_(W)) or as a “running” foot contact time(Tc_(R)). Each step time (Ts) may also be placed into the same categoryas the foot contact time (Tc) with which it is associated. That is, eachstep time (Ts) associated with a “walking” foot contact time (Tc_(W))may be categorized as “walking” step time (Ts_(W)), and each step time(Ts) associated with a “running” foot contact time (Tc_(R)) may becategorized as “running” step time (Ts_(R)).

By accumulating running totals of measured foot contact times for bothwalking and running (i.e., ΣTc_(W) and ΣTc_(R)), and also keeping trackof the number of walking and running foot contact times so accumulated(i.e., Tc_(WNUM) and Tc_(RSUM)), an average “walking” foot contact time(Tc_(W/AVE)) may be calculated by dividing the value of ΣTc_(W) by thevalue of Tc_(WNUM) (i.e., TC_(W/AVE)=ΣTc_(W)/Tc_(WNUM)), and an average“running” foot contact time (Tc_(RAVE)) may be calculated by dividingthe value of ΣTc_(R) by the value of Tc_(RNUM) (i.e.,Tc_(R/AVE)=ΣTc_(R)/Tc_(RNUM)). Based upon these values, the average“walking” and/or “running” pace (Pace_(WAVE) and/or Pace_(RAVE)) duringan outing may be calculated by simply plugging the current average valueof TC_(WAVE) and/or the current average value of TC_(RAVE) into one orboth of the equations (3) above. Similarly, the instantaneous pace as aresult of the last measured foot contact time (Tc), or as a result of anaverage of the last several (e.g., four) measured foot contact times,may be calculated by plugging the current or average value of Tc_(W)and/or the current or average value of Tc_(R) into one or both of theequations (3) above.

In addition, using the well-known relationship: Distance=Time/Pace, thedistance traveled during each complete footstep may be calculated byplugging the measured foot contact time (i.e., Tc_(W) or Tc_(R)) for thefootstep into an appropriate one of the equations (3) to yield the pacefor that footstep, and then dividing the measured step time (Ts) for thefootstep by the pace calculated for the same. The total distancetraveled by the user 112 therefore can be calculated, regardless ofwhether the user 112 is walking and/or running during the outing, byaccumulating a running total of such per-footstep distances.

Alternatively, in addition to calculating the values of Tc_(WAVE) andTc_(RAVE), as discussed above, cumulative totals of the values of Ts_(W)and Ts_(R) (i.e., ΣTs_(W) and ΣTs_(R)) may be maintained in memory.Based upon these values, “walking” and “running” distance values may becalculated using the following equations, which represent a combinationof the equations (3) with the relationship: Distance=Time/Pace:Distance_(W) =ΣTs _(W)/(Mp _(W) *TC _(WAVE) ⁺ Bp _(W)) Distance_(R) =ΣTs_(R)/(Mp _(R) *Tc _(RAVE) Bp _(R))  (10)

Therefore, the total distance traveled by the user during the outing(regardless of whether the user is walking or running) may be calculatedby adding together both of the equations (10), thereby yielding theequation:Distance_(TOTAL) =ΣTs _(w)/(Mp _(w) *TC _(WAVE) ⁺ Bp _(W)) ΣT_(SR)/(Mpg*Tc _(RAVE) +B _(PR))  (11)

As mentioned above, after performing these calculations, thefoot-mounted unit may periodically transmit information, such asdistance traveled, average pace, instantaneous pace, etc., to thewrist-mounted unit 104 for display to the user 112. Alternatively, thefoot-mounted unit 102 may itself display some or all of the desiredinformation.

With regard to the equations discussed herein involving pace, it shouldbe appreciated that, in light of the relationship: Speed=1/Pace, similarequations involving speed, rather than pace, may alternatively be usedto calculate the various performance parameters, including the parameterSpeed itself.

As is well-known, the distance traveled by a user during a given timeinterval may be calculated by the following equation:Distance=Speed*Time  (12)

Therefore, by combining the equations (9) and (12), for each completefootstep taken by the user 112 (i.e., during each step time (Ts)), thedistance traveled by the user 112 during that footstep may be determinedusing the equations:Distance=(Ts/Tc)*Ms _(W) +Ts*Bs _(W) Distance=(Ts/Tc)*Ms _(R) +Ts*Bs_(R).  (13)

As discussed above, the one of the equations (13) that is used tocalculate the distance traveled by the user during a given footstep maybe determined based upon a comparison of the measured foot contact time(Tc) with the threshold value discussed above (e.g., “420” ms) inconnection with FIG. 8. Therefore, to calculate the total distancetraveled by the user 112 during a particular outing, the values Tc andTs may be monitored during each footstep taken by the user 112, and eachmonitored Tc and Ts value may be identified as having been measuredeither when the user 112 was walking or when user 112 was running. Afterhaving been identified as either “walking” Tc and Ts values (Tc_(W) andTs_(W)) or “running” Tc and Ts values (Tc_(R) and Ts_(R)), a runningtotal of each of the values Tc_(W), Ts_(W), Tc_(R), and Ts_(R) obtainedduring the outing may be stored, and the total distances traveled by theuser while running and walking may be calculated using the equations:Total Walking Distance=Σ(Ts _(W) /Tc _(W))*Ms _(W) +ΣTs _(R) *Bs_(W).  (14)Total Running Distance=(Ts _(R) /Tc _(R))*Ms _(R) +ΣTs _(R) *Bs_(R)  (15)

Therefore, the total distance traveled by the user during the outing(regardless of whether the user is walking or running) may be calculatedby adding together the equations (14) and (15), thereby yielding theequation:Total Distance=Σ(Ts _(W) /Tc _(W))*Ms _(W) +ΣTs _(R) *BS _(W)+Σ(Ts _(R)/Tc _(R))*Ms _(R) +ΣTs _(R) *Bs _(R)  (16)

Using these equations, the values Σ(Ts_(W)/Tc_(W)), ΣTs_(W),Σ(Ts_(R)/Tc_(R)), and ΣTs_(R) (“the Tc/Ts and Ts sum values”) may becumulatively updated by the foot-mounted unit 102 as the user 112 iswalking or running, and the Teas and Ts sum values accumulated by thefoot-mounted unit 102 may be periodically transmitted (e.g., once everymillisecond) to the wrist-mounted unit 104. When the wrist-mounted unit104 receives a transmission from the foot-mounted unit 102 includingupdated Tc/Ts and Ts sum values, these values may be combined with thecalibration values Ms_(W), Bs_(W), Ms_(R) and Bs_(R) in accordance withequation (16) to calculate the total distance traveled by the user 112during the outing for which the Tc/Ts and Ts sum values wereaccumulated.

When the user provides an indication to the wrist-mounted unit 104 thatthe user 112 wants the wrist-mounted unit to begin measuring a totaldistance traveled by the user 112 (e.g., by depressing one of thebuttons 306), the wrist mounted unit 104 may, for example, record thevalues of the Tc/Ts and Ts sum values last received from thefoot-mounted unit 102 as “starting values.” The wrist-mounted unit maythen subtract the recorded starting values from any updated Tc/Ts and Tssum values later received from the foot-mounted unit 102 to obtain anaccurate measurement of the Tc/Ts and Ts sum values accumulated thathave been accumulated since the user instructed to the wrist-mountedunit 102 to begin a total distance measurement.

Alternatively, each measured foot contact time (Tc) and step time (Ts)may be transmitted from the foot-mounted unit 102 to the wrist-mountedunit 104 or another device, and the wrist-mounted unit 104 or the otherdevice may perform all of the calculations described herein based thesevalues. In fact, in some embodiments, the signal from the sensor 418 maybe the only information that is transmitted (wirelessly) from thefoot-mounted unit 102 w the wrist-mounted unit 104 or another device,and the wrist-mounted unit 104 or the other device may itself performthe analysis of the sensor signal during which foot contact times, etc.,are measured, as well as performing all or some of the othercalculations described herein involving such measured values.

In light of the universal pivot points 1106 and 1108 identified in thegraph of FIG. 11 for the lines 802 and 804, respectively, we haverecognized that, for each of the two lines 802 and 804, each individualuser may be assigned a single calibration “value” that identifies thelocation of that line. For example, each user may be assigned a firstcalibration value between “1” and “200” that identifies a correspondingangular orientation of the “running line” 802 about the pivot point1106, and may be assigned a second calibration value between “1” and“200” that identifies a corresponding angular orientation of the“walking line” 804 about the pivot point 1108.

In one embodiment, a “baseline” value of a foot contact time (Tc) isselected, and an equation including the single calibration value (e.g.,a number between “1” and “200”) as a variable is used to define the pacethat corresponds to the baseline foot contact time (Tc). Thus, eachchange in the value of the single calibration value causes acorresponding change in the value of the pace associated with thebaseline foot contact time (Tc). In this manner, a point is defined onthe Pace vs. To graph of FIG. 11 through which an appropriate one of thelines 802 and 804 may be interpolated, with the other point throughwhich the line is interpolated being one of the universal pivot points1106 and 1108. In one illustrative embodiment, this relationship isdefined (for each of the lines 802 and 804) using the followingequation:Pace_(TcBASELINE) =M _(CalVal)*CalVal_(p) b _(CalVal)  (17)

Wherein CalVal_(p) is the single calibration value (e.g., a numberbetween “0” and “200”) and m_(CalVal) and b_(CalVal) are constantsdefining, respectively, the slope and Y-intercept of the relationshipbetween Pace_(TcBASELINE) and CalVal_(p). It should be appreciated thatthe relationship between the single calibration value and pace, for thebaseline foot contact time (Tc), may alternatively be non-linear, andthe invention is not limited to a linear relationship such as thatshown.

In one embodiment of the invention, after a value of CalVal_(p) is setinitially (for either running or walking), this value can later beoptimized whenever the user runs or walks a reported distance (e.g., afive mile race), and obtains a measured distance for the race (e.g.,“3.1” miles) using the foot-mounted unit 102 and/or wrist-mounted unit104. This optimization may be achieved in response to the user inputtingonly the reported distance and the measured distance, and may beperformed by one or more of the foot-mounted unit 102, the wrist-mountedunit 104, the computer 428, and the network server 442, as follows.

Referring to FIG. 11, the user may run or walk a reported distance(e.g., five miles), while the foot-mounted unit 102 and/or thewrist-mounted unit 104 calculates a measured distance (e.g., “3.1miles”) based upon measured foot contact times and the initial value ofCalValp. Next, using the line corresponding to the initial value ofCalValp, the value of Tc corresponding to an arbitrarily-picked value ofPace (e.g., seven minutes/mile) may be determined. In addition, thearbitrarily-picked value of Pace (e.g., seven minutes/mile) may bemultiplied by the reported distance (e.g., five miles) to obtain a timevalue (e.g., “17.5” minutes). Next, this time value (e.g., “17.5”minutes) may be divided by the measured distance (e.g., 3.1 miles),which was calculated using the line corresponding to the initial valueof CalValp, to obtain a calculated value of Pace (e.g., “5.64minutes/mile). A point on the graph of FIG. 11 may then be identifiedhaving a “Pace” coordinate corresponding to the calculated value of Pace(e.g., “5.64” minutes/mile) and a “Tc” coordinate corresponding to thevalue of Tc corresponding to the arbitrary pace (e.g., sevenminutes/mile) identified above. Finally, a new line may be interpolatedbetween this identified point and the universal pivot point discussedabove, which line represents a newly-calibrated Pace vs. Tc line for theuser. Based upon the position of this line, a new value of CalValp maybe determined and may be stored in memory for the user. This new valueof Cal Vale, and the line corresponding thereto, may then be used forfuture measurements by the foot-mounted unit 102 and/or thewrist-mounted unit 104. This procedure may be used to optimize eitherthe walking line 802 or the running line 804 of FIG. 11.

It should be appreciated that this technique can likewise be performedin other situations wherein a set of lines is known for which a singlecalibration value and/or a single point defines each line in the set.For example, the above-described technique may also be employed inconnection with the set of lines identifying the relationship betweenSpeed and 1/Te, explained below in connection with FIG. 13, because asingle calibration value can be used therein to define each line in thatset of lines.

As discussed above, each line in the graph of FIG. 11 can be translatedinto a corresponding line in the graphs of FIG. 13 (e.g., by selecting afew reasonable values of Tc and Pace, calculating values of 11Tc andSpeed based thereupon, plotting points corresponding to the calculatedvalues, and interpolating a line between the points so plotted).Therefore, because a single calibration point can identify the positionof each of the curves 802 and 804 in the graph of FIG. 11, a singlecalibration point can also be used to identify the position of each ofthe curves 1302 and 1304 in the graph of FIG. 13. In this regard, itshould be understood that, while each single calibration “value” used inconnection with the graph of FIG. 11 identifies a corresponding degreeof rotation of one of the lines 802 and 804 about its pivot point, eachof the “single” calibration values used in connection with the graph ofFIG. 13 identifies both a corresponding degree of rotation and acorresponding degree of translation of one of the lines 1302 and 1304with respect to the Speed and 1/Tc axes of the graph.

Based upon empirical measurements of the relationships between Tc andPace and 1/Tc and Speed for a large number of users, we have discovereduniversal relationships between the calibration constants Mp_(R) andBs_(R) and between the calibration constants Mp_(W) and Bs_(W) of theequations (3) and (11), respectively, that have enabled us to deriverespective equations (each including a single, user-specific constant)that identify corresponding rotational and translational positions ofthe curves 1302 and 1304 in the graph of FIG. 13. Therefore, using theseequations, each user may simply be assigned a first calibration constantthat defines that user's “walking curve” 1302 in the graph of FIG. 13and second calibration constant that defines that user's “running curve”1304. This may compared to the alternative technique of using twoseparate calibration constants (i.e., the calibration constants Ms_(W)and Bs_(W) or Ms_(R) and Bs_(R) of equations (9)) to define each of thelines 1302 and 1304.

The discovered relationships between the constants Mp and Bs from theequations (3) and (11), respectively, are identified by the followingequations:Mp _(W) =C1*Bs _(W) Mp _(R) =C2*Bs _(R)  (18)wherein C1 and C2 are universal constants. The constants C1 and C2 arereferred to herein as the “Darley constants,” named after theirdiscoverer, Jesse Darley, of Watertown, Mass. When the units used in thegraphs of FIGS. 11 and 13 are employed, we have discovered that theDarley constant C1 is equal to “4” and that the Darley constant “C2” isequal to “−111.4062” (which can be approximated by the fraction “−32/45”).

Because the locations of the universal pivot points 1106 and 1108 (i.e.,the Tc values when pace is equal to “0”) are known, the equations (3)can be simplified to:Bp _(W) =−PP _(W) *Mp _(W) Bp _(R) −PP _(R) *MP _(R)  (19)wherein PP_(W) is equal to the Tc value at the pivot point 1106 of theline 802 (i.e., Mstep_(W)), and PP_(R) is equal to the To value at thepivot point 1108 of the line 804 (i.e., Mstep_(R)). In the units used inthe graph of FIG. 11, the values of PP_(W) and PP_(R) are “200” and“75,” respectively.

As shown below, the equations (18) and (19) may be combined to yield theequations:Bp _(W) =−PP _(W) *C1*Bs _(W) Bp _(R) =−PP _(R) *C2*Bs _(R)  (20)The equations (3) and (11) may be solved for Tc and Ms, respectively, toyield the equations:Tc=(Pace−Bp _(W))/Mp _(W) Tc=(Pace−Bp _(R))/M _(PR)  (21)Ms _(W) =Tc*(Speed−Bs _(W)) Ms _(R) =Tc*(Speed−Bs _(R))  (22)The equations (19) and (20) then may be combined to yield the equations:Ms _(W)=(Speed_(EPW) −B _(SW))*(Pace_(EPW) −Bp _(W))/Mp _(W)Ms _(R),=(Speed_(EPR) −B _(SR))*(Pace_(EpR) −Bp _(R))/Mp _(R)wherein Speed_(EPW) and Pace_(EPW) represent, respectively, the speed atone of the “end points” 1306 and 1308 of the line segment 1302 a of the“walking” line 1302 and the pace (i.e., 1/Speed) correspondingtherewith, and Speed_(EPR) and Pace_(EPR) represent, respectively, thespeed at one of the “end points” 1310 and 1312 of the line segment 1304a of the “running” line 1304 and the pace (i.e., 1/Speed) correspondingtherewith. The speed with which each of the endpoints is associatedtherefore corresponds precisely with a pace on one of the lines 802 and804 in the graph of FIG. 11, whereas the speeds with which centralportions of the line segments 1302 a and 1304 a are associated may notcorrespond precisely with paces on the lines 802 and 804 in the graph ofFIG. 11 because of the slight bend in the curves 1202 and 1204 betweenthe endpoints of the line segments 1302 a and 1304 a, respectively.

With the units used in FIGS. 11 and 13, the endpoint paces (Pace_(EPW))corresponding to the endpoint speeds (Speed_(EPW)) of the line segment1302 a of “4” and “4.5” MPH are “15” and “13.333” minutes/mile,respectively, and the endpoint paces (Pace_(EPR)) corresponding to theendpoint speeds (Speed_(EPR)) of the line segment 1304 a of “7.5” and“9” MPH are “8” and “6.666” minutes/mile, respectively.

As shown below, the equations (18), (20), and (23) may be combined toyield the following values for Ms w and MsR:Ms _(W)=(Speed_(EPW) −Bs _(W))*(Pace_(EPW) +PP _(W) *C1*Bs _(W))/(C1*B_(SW))  (24)Ms _(R)=(Speed_(EPR) −Bs _(R))*(Pace_(EPR) +PP _(R) *C2*Bs _(R))/(C2*Bs_(R))

Thus, in the equations (24), the value of each of the constants in theequations (11) (i.e., Ms_(W) or Ms_(R)) is defined in terms of the otherconstant (i.e., B_(SW) or Bs_(R)) in the same equation. The equations(24) therefore can be combined with the equations (11) to yield thefollowing equations for speed that depend on only one user-specificconstant (i.e., Bs_(W) or Bs_(R)):Speed=(1/Tc)*(Speed_(EPW) −Bs _(W))*(Pace_(EPW) +PP _(W) *C1*Bs_(W))/(C1*Bs _(W))/(C1* Bs _(W))+Bs _(W)Speed=(1/Tc)*(Speed_(EPR) −Bs _(R))*(Pace_(EPR) +PP _(R) *C2*Bs_(R))/(C2*Bs _(R))+Bs _(R)  (25)

Finally, the equations (12) and (25), may be combined, in a mannersimilar to that by which the equations (II) and (12) above were combinedto yield equation (17), to yield the following equation:Total Distance=Σ(Ts _(W) /Tc _(W))*(Speed_(EPW) −Bs _(W))*(Pace_(EPW)+PP _(W) *C1*Bs _(W))/(C1*Bs _(W))/(C1*Bs _(W))+ΣTsW*Bs _(W)+Σ(Ts _(R)/Tc _(R))*(Speed_(EPR) −Bs _(R))*(Pace_(EPR) +PP _(R) *C2*Bs_(R))/(C2*Bs _(R))+ΣTs _(R) *Bs _(R)  (26)

As mentioned above, when the unit shown in the graphs of FIGS. 9 and 11are used in the equation (26), the values of the Darley constants C1 andC2 may be “−1” and “− 32/45,” respectively, the values of the constantsPP_(W) and PP_(R) may be “200” and “75” ms, respectively, the constantsSpeed_(EPW) and Pace_(EPW) may be “4” MN-I and “15” minutes/mile (or and“4.5” MPH and “13.333” minutes/mile), respectively, and the constantsSpeed_(EPR) and Pace_(EPR) may be “7.5” MPH and “9” minutes/mile (or and“9” MPH and “6.666” minutes/mile), respectively_ Thus, the only unknownsin the equation (26) are the accumulated values of ΣTs_(W), ΣTc_(W),ΣTs_(R), and ΣTc_(R), and the user-specific constants Bs_(W) and Bs_(R).

When the equation (26) is used and the user 112 wishes to set the valueof the user-specific constants Bs, the user can simply walk a knowndistance (e.g., “114” of a mile) while permitting the values ΣTs_(W),ΣTc_(W), ΣTs_(R), and ΣTc_(R) to accumulate during the time period takento walk the distance. Because the values ΣTs_(R) and ΣTc_(R) will bezero when the user is walking, the constant Bs_(R) drops out of theequation, and the equation (26) can be solved for the value of Bs_(W).This value of Bs_(W) can then be stored and used in the equation (26) tocalculate distance traveled by the user 112 during normal operation.Alternatively, the user can select a calibration mode specifically forwalking, and only the portion of the equation (26) relating to walkingcan be used to calculate the value of Bs_(W) after the user walks aknown distance.

Similarly, when the equation (26) is used and the user 112 wishes to setthe value of the user-specific constants Bs_(R), the user can simply runa known distance (e.g., “¼” of a mile) while permitting the valuesΣTs_(W), ΣTc_(W), ΣTs_(R), and ΣTc_(R) to accumulate during the timeperiod taken to walk the distance. Because the values ΣTs_(W) andΣTc_(W) will be zero when the user is running, the constant Bs_(W) dropsout of the equation, and the equation (26) can be solved for the valueof Bs_(R). As with the value of Bs_(W), this value of Bs_(R) can then bestored and used in the equation (26) to calculate distance traveled bythe user 112 during normal operation. Alternatively, similar to thewalking calibration discussed above, the user can select a calibrationmode specifically for running, and only the portion of the equation (26)relating to running can be used to calculate the value of Bs_(R) afterthe user runs a known distance.

Regardless of the equation (s) used to determine the user's pace orspeed, and regardless of the calibration technique(s) used to optimizethose equation (s), in one illustrative embodiment of the invention, asdiscussed above in connection with FIG. 4, user-specific information(such as one or more calibration constants) may be stored somewhere inthe system for each of several users (e.g., family members or members ofa track team), and such information, be selectively accessed and used inresponse to the user entering his or her name, user ID or otheridentifier into the wrist-mounted unit 104 or elsewhere. In addition, tothe extent a user's choice of running or walking shoe or other accessory(e.g., a knee or ankle brace) has any effect on the proper selection ofhis or her calibration constant(s), each user may also input anothercode to indicate the user's choice. In response to the entry of suchdata, the wrist-mounted unit 104 (or other device) may then access anduse previously-stored calibration information corresponding to theuser's choice. In addition, the entry of such information may alsopermit the appropriate device to place accumulated information (e.g.,distance traveled) into a log corresponding to the choice. For example,data such as total distance traveled may be separately logged for eachpair or shoes worn by the user.

FIG. 14 shows and illustrative example of a primary routine 1400 thatmay be performed by the processor 422 of the foot-mounted unit 102 (FIG.4) in accordance with one embodiment of the present invention. Theprocessor 422 may, for example, execute a plurality of instructionsstored in the memory 424 or another computer-readable medium to performthe various method steps and routines of the primary routine 1400.Alternatively, of course, the primary routine 1400 can be implementedusing dedicated hardware or firmware, or any combination of hardware,firmware and software capable of achieving a similar result.

With regard to the illustrative routine 1400 and the constituentroutines thereof, it should be appreciated that the precise order of themethod steps and routines is not critical, and that the invention is notlimited to embodiments that perform method steps and routines preciselyin the order shown. Additionally, it should be appreciated that themethod steps and routines described herein represent only one ofnumerous possible routines that can achieve the desired result, and theinvention is not limited to the particular routine shown. Further, itshould be understood that some embodiments of the invention can performfewer than all of the functions performed by the method steps androutines described herein, and that the invention is not limited toembodiments which employ all of the functions performed by theillustrated routines.

The primary routine 1400 may be best understood with reference to FIG. 7in conjunction with FIG. 14, as the primary routine 1400 is concernedprimarily with identifying the various characteristics in a signal suchas that shown in FIG. 7 that are indicative of particular events duringa user's footsteps (e.g., the heel-strike events 702 a-b and toe-offevents 704 a-b of FIG. 7), and in performing calculations and analysesbased upon measured time periods between such events.

As shown, the primary routine 1400 is a continuous loop. As discussedbelow, various routines within the primary routine 1400 may be capableof performing functions such as responding to a user input to shut downthe power of the foot-mounted unit 102, transmitting information fromthe foot-mounted unit 102 to the wrist-mounted unit 104, and altering anetwork address of the foot-mounted unit 102/wrist-mounted unit 104combination. For ease of description, however, these underlyingfunctions will be ignored at the outset, and it will be assumed that thepower in the foot-mounted unit 102 remains on at all times. First, ahigh-level description of the primary routine 1400 will be provided, andthen functionality of each of the constituent routines of the primaryroutine 1400 will be described in more detail below.

For convenience, it may be assumed initially that the primary routine1400 begins at a routine 1404, wherein the signals 710 and 712 areanalyzed to attempt to identify one or more characteristics thereofindicative of a toe-off event 704.

When, during the “toe-off event?” routine 1404, a toe-off event isidentified, the primary routine 1400 proceeds to a step 1406, wherein afoot contact time (Tc) is recorded based upon a measured time differencebetween the time of the identified toe-off even 704 and the time of aheel-strike event 702 previously identified in connection with a“heel-strike event?” routine 1408 of the primary routine 1400 (asdescribed below). It should be appreciated that, during the initialcycle of the primary routine 1400, the first identified toe-off event704 does not follow a previously identified heel-strike event 702.Therefore, the initial recorded Tc value will be inaccurate. In light ofthis, the primary routine 1400 may, for example, be permitted to cycleuntil data for at least one complete footstep has been accumulatedbefore any Tc or Ts values are recorded or used (at the step 1406 orelsewhere) in performing distance, pace, speed, and/or energyexpenditure calculations based thereupon. Alternatively, a “dummy” Tcvalue may be recorded during the initial iteration of the step 1406.

When, during the “toe-off event?” routine 1404, a toe-off event 704 isnot identified within a pre-determined period of time, the primaryroutine 1400 proceeds to a step 1418, wherein an “activity flag” is setto false to indicate a lack of activity of the user 112.

After the step 1418, the primary routine 1400 proceeds to a step 1426,wherein the various timers used to measure the foot contact time (Tc),foot-air time (Ta), and step time (Ts) are reset because of theidentified lack of activity.

After the step 1406 (discussed above), the primary routine 1400 proceedsto a “heel-strike event?” routine 1408, wherein it is determined whetherone or more characteristics in the signals 710 and 712 can be identifiedthat are indicative of a heel-strike event 702.

When, during the “heel-strike event?” routine 1408, a heel-strike event702 is identified, the primary routine 1400 proceeds to a step 1410,wherein the “activity flag” (if false) is set to true to indicate thatthe user 112 is currently active. In addition, at the step 1410, a “steperror flag” (if true) is set to false to indicate that both a toe-offevent 704 and a heel-strike event 702 were identified in connection withthe current footstep.

After the step 1410, the primary routine 1400 proceeds to a step 1412,wherein a measured step-time (Ts) and a measured foot air time (Ta) arerecorded. Because, during the initial iteration of the primary routine1400, the step time (Ts) cannot be accurate, the primary routine 1400may, for example, wait until both a toe-off even 704 and a heel-strikeeven 702 have been identified at least once before recording a value ofTs. Alternatively, a “dummy” value may be recorded as the value of Ts.Because both a toe-off event 704 arid a heel-strike event 702 wereidentified in the steps 1404 and 1408, however, the value of the stepair time (Ta) may be assumed to be accurate at this stage and thattherefore may be recorded, if desired.

When, during the “heel-strike event?” routine 1408, it is determinedthat a heel-strike event 702 has not occurred within a predeterminedtime period, the primary routine 1400 proceeds to a step 1420, whereinit is determined whether this is the third consecutive time that aheel-strike event 702 was not identified during the “heel-strike event?”routine 1408.

When, at the step 1420, it is determined that it is not the thirdconsecutive time that a heel-strike event 702 has not been identifiedduring the “heel-strike event?” routine 1408, the primary routine 1400proceeds to a step 1422, wherein the value of Tc is set to the lastrecorded Tc value, rather than the current incorrect value, and thevalue of Ts is set to maximum allowable value of Ts (i.e., the thresholdTs value that caused the “heel-strike event?” routine 1408 to “kick out”to the step 1420. The value of Ts is not replaced by a substitute valuein this situation because it is desirable to use cumulative sum of allrecorded Ts values as the total elapsed time of the outing, and suchreplacement would result in an error in this value.

When, at the step 1420, it is determined that it is the thirdconsecutive time that a heel-strike event 702 has not been identifiedduring the “heel-strike event?” routine 1408, the primary routine 1400proceeds to a step 1424, wherein the “step error flag” (if false) is setto true to indicate that a step monitoring error has occurred. Asdiscussed below, the “step error flag” may be passed to thewrist-mounted unit 104, and used thereby to indicate an anomaly to theuser 112.

After the step 1424, the primary routine 1400 proceeds to the step 1426,wherein the Tc, Ta, and Ts timers are reset because of the identifiedmissing of the heel-strike event.

Following either of the steps 1412 or 1426, the primary routine 1400proceeds to a routine 1414 wherein a determination is made whether thefoot-mounted unit 102 should remain powered on, should be powered down,or should be temporarily set to a low-power “sleep” mode. As explainedin more detail below in connection with FIG. 25, based upon the level ofactivity detected (i.e., whether and for how long the “activity flag”has been false), the “check activity?” routine 1414 may take appropriateaction. For example, it may cause the foot-mounted unit 102 to enter atemporary, low-power sleep mode, or may set a flag that will cause thefoot-mounted unit 102 to power down completely.

After the step 1414, the primary routine 1400 proceeds to a routine1416, wherein the recorded values of Tc, Ts, and Ta accumulated duringthe previous iteration of the primary routine 1400 are evaluated andsmoothed, and certain values are calculated based thereupon. Such valuesmay, for example, be displayed to the user 112 via a display on thefoot-mounted unit 102 and/or may be transmitted to the wrist-mountedunit 104 or elsewhere for display to the user, processing, and/orstorage.

After the routine 1416, the primary routine 1400 proceeds to a routine1402, wherein the primary routine 1400 waits for a predetermined amountof time (see ignore time 708 of FIG. 7) before attempting to identifythe next toe-off event 704.

After the routine 1402, the primary routine 1400 returns to the “toe-offevent?” routine 1404 (discussed above).

The various routines of the primary routine 1400 and a number ofsubroutines thereof now will be discussed. Each of these routines andsubroutines may be best understood with reference to FIG. 7, inconjunction with the flow diagram illustrating the same. An exampleimplementation of the “wait” routine 1402 of the primary routine 1400 isillustrated in FIG. 15.

As shown, the routine 1402 begins at a step 1502, wherein it isdetermined whether the ignore time 708 has elapsed since the lastheel-strike event 702.

When, at the step 1502, it is determined that the ignore time 708 hasnot yet elapsed, the routine 1402 proceeds to the “process button”routine 1504, which is described below in connection with FIG. 16.

After the process button routine 1504, the routine 1402 proceeds to aprocess RF routine 1506, during which any necessary RFtransmission/reception functions, e.g., information transmissions toand/or from the wrist-mounted unit 104 may be performed.

After the routine 1506, the routine 1402 returns to the routine 1502(discussed above).

An example implementation of the “process button” routine 1504 of FIG.15 is shown in FIG. 16. As shown, the routine 1504 begins at step 1602,wherein it is determined whether the button 204 on the foot-mounted unit102 is currently depressed.

When, at the step 1602, it is determined that the button 204 is notdepressed, the routine 1504 proceeds to a step 1604, wherein it isdetermined whether the foot-mounted unit 102 is currently powered on.

When, at the step 1604, it is determined that the foot-mounted unit 102is not yet powered on, the routine 1504 proceeds back to the step 1602,wherein it is again determined whether the button 1502 is depressed.

When, at the step 1602, it is determined that the button 204 isdepressed, the routine 1504 proceeds to a step 1606, wherein it isdetermined whether the foot-mounted unit 102 is powered on.

When, at the step 1606, it is determined that the foot-mounted unit 102is not yet powered on, the routine 1504 proceeds to a step 1608, whereinthe foot-mounted unit 102 is powered up and initialized, and the routine1504 terminates.

When, at the step 1606, it is determined that the foot-mounted unit 102is already powered on, the routine 1504 proceeds to a step 1610, whereinit is determined whether the button 204 has been depressed for more thanthree seconds.

When, at the step 1610, it is determined that the button has not beendepressed for more than 3 seconds, the routine 1504 proceeds to a step1626, wherein it is determined whether the shutting down flag iscurrently true.

When, at the step 1626, it is determined that the shutting down flag iscurrently true, the routine 1504 proceeds to a step 1628, wherein theshutting down flag is set to false, and the routine 1504 terminates.

When, at the step 1626, it is determined that the shutting down flag isnot currently true, the routine 1504 proceeds to a step 1630, whereinthe shutting down flag is set to true, ant the routine 1504 terminates.As discussed below in connection with step 1622, after the shutting downflag has been true for more than thirty seconds, the foot-mounted unitis powered down.

When, at the step 1610 (discussed above), it is determined that thebutton 204 has been depressed for more than three seconds, the routine1504 proceeds to a step 1614, wherein a new network address for thefoot-mounted unit 102 may be selected. In one embodiment of theinvention, a new address is selected at random from a group ofone-hundred possible addresses.

After the step 1614, the routine 1504 proceeds to a step 1616, whereinit is determined whether the button remains depressed.

When, at the step 1616, it is determined that the button remainsdepressed, the routine 1504 proceeds to a step 1618, wherein a newnetwork address for the foot-mounted device is broadcasted by thetransceiver 420.

When, at the step 1616, it is determined that the button is no longerdepressed, the routine 1504 terminates.

When, at the step 1604 (discussed above), it is determined that thefoot-mounted unit 102 is currently powered on, the routine 1504 proceedsto a step 1620, wherein it is determined whether the shutting down flagis true. —65—

When, at the step 1620, it is determined that the shutting down flag istrue, the routine 1504 proceeds to the step 1622, wherein it isdetermined whether the shutting down flag has been true for more thanthirty seconds.

When, at the step 1622, it is determined that the shutting down flag hasbeen true for more than thirty seconds, the routine 1504 proceeds to astep 1624, wherein the foot-mounted unit is powered down.

After the step 1624, the routine 1504 returns to the step 1602(discussed above). FIG. 17 shows an illustrative implementation of the“toe-off event?” routine 1404 of the primary routine 1400. As shown inFIG. 17, the “toe-off event” routine 1404 begins at a step 1701, whereincertain values (discussed below) are initialized.

After the step 1701, the “toe-off event?” routine 1404 proceeds to astep 1702, wherein a sample of an output signal of the sensor 418 (i.e.,a difference between the signals 710 and 712 of FIG. 7), is taken.

After the step 1702, the “toe-off event?” routine 1404 proceeds to an“update threshold” routine 1704, during which the value of a variable“threshold” which is used in connection with the “heel-strike event?”“heel-strike event?” routine 1408 (described below). An example ofimplementation of the “update threshold” routine 1704 is described belowin connection with FIG. 23.

After the routine 1704, the “toe-off event'?” routine 1404 proceeds to astep 1706, wherein it is determined whether an amount of time haselapsed that is in excess of a maximum possible time of a foot-step(i.e., it is determined whether the toe-off event must have been missedbecause too much time has elapsed since the last heel-strike event 702).

When, at the step 1706, it is determined that an excessive amount oftime has elapsed since the last heel-strike event 704, the “toe-offevent?” routine 1404 proceeds to the step 1418 (discussed above inconnection with the primary routine 1400).

When, at the step 1706, it is determined that an excessive amount oftime has not yet elapsed since the last heel-strike event 704, the“toe-off event?” routine 1404 proceeds to a routine 1708, wherein it isdetermined whether a potential toe-off event 704 occurred in connectionwith the last sample taken at the step 1702. An example implementationof the routine 1708 is described below in connection with FIG. 18.

After the routine 1708, the “toe-off event?” routine 1404 proceeds to an“air signature?” routine 1710, wherein it is determined whether an “airsignature” 706 has been identified in the signals 710 and 712. Anexample implementation of the “air signature?” routine 1710 is describedbelow in connection with FIG. 19. As shown in FIG. 7, an air signaturein the signals 710 and 712 may be an extended period of relativelyconstant, negative acceleration during a footstep.

When, at the step 1710, it is determined that an “air signature” has notyet been identified in the signals 710 and 712, the “toe-off event?”routine 1404 proceeds to the “process button” routine 1506 (discussedabove), then to the “process RF” routine 1504 (also discussed above),and finally back to the step 1702, wherein another sample of the signals710 and 712 is taken.

When, at the step 1710, it is determined that an “air signature” hasbeen identified in the sensor signal, the “toe-off event?” routine 1404proceeds to the step 1406 of the primary routine 1400.

FIG. 18 shows an illustrative implementation of the routine 1708 of FIG.17, wherein it is determined whether a potential toe-off event 704 hasoccurred.

As shown in FIG. 18, the routine 1708 begins at a step 1802 wherein itis determined whether the most recent sample taken during the step 1702is greater than the next most recent sample taken at the step 1702.

When, at the step 1802, it is determined that the most recent sample isgreater than the next most recent sample, the routine 1708 proceeds to astep 1806, wherein a variable “count” is incremented by one. Thevariable “count” is one of the values that may be initialized inconnection with the step 1701 of the “toe-off event?” routine 1404 ofFIG. 17.

When, at the step 1802, it is determined that the most recent sample isnot greater than the next most recent sample, the routine 1708 proceedsto a step 1804, wherein the variable “count” is reset to zero, and theroutine 1708 then terminates.

After the step 1806 (discussed above), the routine 1708 proceeds to astep 1808, wherein it is determined whether the variable “count” isgreater than one.

When, at the step 1808, it is determined that the variable “count” isnot greater than one, the routine 1708 terminates.

When, at the step 1808, it is determined that the variable “count” isgreater than one, the routine 1708 proceeds to a step 1810, wherein avariable “dill” is set to be equal to the value of the current sampleminus the value of the third most recent sample, plus the value of thecurrent sample divided by four.

After the step 1810, the routine 1708 proceeds to a step 1812, whereinit is determined whether the variable “cliff” is greater than anothervariable “diff max.” The variable “diff max” is one of the values whichmay be initialized in connection with the step 1701 of the “toe-offevent?” routine 1404 of FIG. 17.

When, at the step 1812, it is determined that the variable “dill” isgreater than the variable “diff max,” the routine 1708 proceeds to astep 1816, wherein the variable “diff max” is set to be equal to thevariable “diff.”

After the step 1816, the routine 1708 proceeds to a step 1818, wherein,the current value of a timer used to measure foot contact times (the “Tctimer”) is recorded as a possible foot contact time (Tc). The Tc timermay have been reset in connection with the identification of aheel-strike event 702 in the “heel-strike event?” “heel-strike event?”routine 1408 of the primary routine 1400, or may have been reset inconnection with the step 1426 of the primary routine 1400.

After the step 1818, the routine 1708 proceeds to a step 1820 whereinthe timer used to measure foot air time (the “To timer”) is reset sothat, if the current sample is later determined to be an actual lift-offevent, the Ta timer is set appropriately. After the step 1820, theroutine 1708 terminates.

When, at the step 1812 (discussed above), it is determined that thevariable “cliff” is not greater than the variable “diff max,” theroutine 1708 proceeds to a step 1814, wherein it is determined whetherthe variable “diff” is greater than 80% of the variable “diff max.”

When, at the step 1814, it is determined that the variable “cliff” isnot greater than 80% of the variable “diff max,” the routine 1708terminates.

When, at the step 1814, it is determined that the variable “cliff” isgreater than 80% of the variable “diff max,” the routine 1708 proceedsto the step 1818 (discussed above), then to the step 1820 (alsodiscussed above), and the routine 1708 then terminates.

FIG. 19 illustrates an illustrative implementation of the “airsignature?” routine 1710 of the “toe-off event?” routine 1404 of FIG.17, during which the signals 710 and 712 are analyzed to identify an“air signature” 706.

As shown, the “air signature?” routine 1710 beings at a step 1902,wherein it is determined whether the current sample is negative. As usedherein, a “sample” refers to a voltage difference between the signals710 and 712 at a particular moment in time. With reference to FIG. 7,assuming that the signal 710 is exactly at level “128,” a sample wouldbe positive if it were taken when the signal 712 is at a level greaterthan level “128,” and would be negative if it were taken when the signalis at a level less than level “128.”

When, at the step 1902, it is determined that the current sample ispositive, the “air signature?” routine 1710 proceeds to a step 1904,wherein a counter that keeps track of a time period during whichsequential samples of the signals 710 and 712 are negative (the “below0” counter) is reset, and a variable “max_level_below_(—)0” also isreset. The variable max_level_below 0 represents the maximum negativeacceleration that has occurred since the last time the “below 0” counterwas reset.

After the step 1904, the “air signature?” routine 1710 proceeds to theroutine 1506 (as shown in FIG. 17).

When, at the step 1902, it is determined that the current sample isnegative, the “air signature?” routine 1710 proceeds to step 1906,wherein it is determined whether the absolute value of the sample isgreater than the variable max_level_below_(—)0.

When, at the step 1906, it is determined that the absolute value of thesample is greater than the variable max_level_below_(—)0, the “airsignature?” routine 1710 proceeds to a step 1908, wherein the variablemax_level_below_O is updated to be equal to the absolute value of thesample. After the step 1908, the “air signature?” routine 1710 proceedsto a step 1910 (discussed below).

When, at the step 1906, it is determined that the sample is not greaterthan the variable max_level_below_(—)0, the “air signature?” routine1710 proceeds to the step 1910, wherein it is determined whether: (1)the “below_(—)0” counter has reached fifty milliseconds (ms), and (2)the variable max level below 0 is greater than seventeen.

When, at the step 1910, it is determined that both of these conditionsare not met, the “air signature?” routine 1710 proceeds to the routine1506 as shown in FIG. 17.

When, at the step 1910, it is determined that both of these conditionsare met, the “air signature?” routine 1710 proceeds to a step 1912,wherein both the “below_(—)0” counter and the variablemax_level_below_(—)0 are reset.

After the step 1912, the “air signature?” routine 1710 proceeds to astep 1914, wherein it is determined whether at least one possible Tc hasbeen recorded at the step 1818 of the routine 1708 of FIG. 18.

When, at the step 1914, it is determined that at least one possible Tchas been recorded, the “air signature?” routine 1710 proceeds to thestep 1406 of FIG. 14 (discussed above).

When, at the step 1914, it is determined that no Tc has been recorded inconnection with step 1818 of the routine 1708, the “air signature?”routine 1710 proceeds to the “process button” routine 1506 as shown inFIG. 17.

As mentioned above, one of the events identified during each footsteptaken by the user 112 is a heel-strike event 702. In accordance with oneaspect of the invention, the signals 710 and 712 are analyzed toidentify any of a plurality of predetermined criteria indicative of suchan event. An example of one such criteria is illustrated in FIG. 20.

As shown, after an air signature 706 of the signal 712 has beenidentified (i.e., it has been determined that the foot 114 of the user112 is airborne), a subsequent sharp, positive peak 2002 in the signal712 is one characteristic in the signal 712 that is indicative of thefoot 114 of the user 112 impacting the surface 108_ Other criteriawhich, if satisfied, may also be indicative of a heel-strike event 702are discussed below in connection with the routine 2110 (shown in FIGS.21 and 22).

In the example embodiment described herein, the “heel-strike event?”routine 1408 of the primary routine 1400 is the routine responsible forperforming this analysis.

An illustrative implementation of the “heel-strike event?” routine 1408is shown in FIG. 21.

Referring briefly to FIG. 7, the period during which the user's foot 114is airborne (i.e., the period between each toe-off event 704 and thesubsequent heel-strike event 702) is characterized by a relativelysmooth signal that is substantially free of sharp transitions. Basedupon this characteristic, one goal of the “heel-strike event?” routine1408 is to identify when one or more sharp transitions first begin toappear in the signal 712. When such sharp transition(s) appear in thesignal, it may be concluded that the foot 114 has impacted with thesurface 108.

As shown in FIG. 21, the “heel-strike event?” routine 1408 begins at astep 2101, wherein certain values (discussed below) used in connectionwith the “heel-strike event?” routine 1408 are initialized.

After the step 2101, the “heel-strike event?” routine 1408 proceeds to astep 2102, wherein a sample of the signals 712 and 710 (discussed above)is taken.

After the step 2102, a value of the variable “threshold” is updated inconnection with the routine 1704 (discussed below in connection withFIG. 23). As explained below, the variable “threshold” may be used inconnection with the steps 2110 and 2112 to determine whether the user'sfoot 114 has, in fact, impacted with the surface 108. Advantageously,the variable “threshold” is updated dynamically in response to measuredcharacteristics of the samples taken during the preceding five footstepstaken by the user 112.

After the routine 1704, the “heel-strike event?” routine 1408 proceedsto a step 2106, wherein a variable “qualifying cycles” is incremented byone. The variable “qualifying cycles” may, for example, be one of thevalues that was initialized in connection with the step 2101 discussedabove.

After the step 2106, the “heel-strike event?” routine 1408 proceeds to astep 2108, wherein it is determined whether an excessive amount of timehas elapsed since the “heel strike event?” routine 1408 began lookingfor a heel-strike event 702. That is, it is determine whether thesought-after heel-strike event 702 must have been missed by the“heel-strike event?” routine 1408 because the currently-measured steptime (Ts) has reached a value that is outside of a predetermined rangeof acceptable step times for human beings. In one embodiment, this upperlimit on acceptable step time (Ts) is approximately “1360” milliseconds.In this regard, it should be appreciated that, in addition to or in lieuof the maximum acceptable step time (Ts), other variables such as a footair time (Ta) may also or alternatively be examined at the step 2108 todetermine whether the sought-after heel-strike event 702 must have beenmissed.

When, at the step 2108, it is determined that the current step time (Ts)value has exceeded that maximum acceptable step time, the “heel-strikeevent?” routine 1408 proceeds to the step 1420 of the primary routine1400, as shown in FIG. 14.

When, at the step 2108, it is determined that an excessive amount oftime has not elapsed since the “heel-strike event?” routine 1408 beganlooking for a heel-strike event even 702, the “heel-strike event?”routine 1408 proceeds to a step 2110, wherein it is determined whetherany of a number of predetermined landing criteria have been met as aresult of the most recent sample taken at the step 2102. An exampleimplementation of the routine 2110 is described below in connection withFIG. 22.

When, during the routine 2110, it is determined that at least one of theseveral predetermined landing criteria was met as a result of the mostrecent sample taken at the step 2102, the “heel-strike event?” routine1408 proceeds to a “is landing qualified?” “is landing qualified?”routine 2112, wherein additional analysis may be performed to ensurethat the satisfied landing criteria was definitely the result of aheel-strike event 702. An example implementation of the “is landingqualified?” “is landing qualified?” routine 2112 is described below inconnection with FIG. 24.

When, during the “is landing qualified?” “is landing qualified?” routine2112, it is determined that a heel-strike event 702 has indeed beenidentified, the “heel-strike event?” routine 1408 proceeds to steps2114, 2116, 2118, and 2120, wherein various variables are set based uponthe value of a so-called “down correction” timer. As explained below,this “down correction” timer would have been preset previously inconnection with the routine 2110 (FIG. 22) in response to one of theplurality of landing criteria being met.

In essence, the “down correction” timer is used to measure the amount oftime that has elapsed since the identification of the first of severalsamples that are determined to satisfy one of the landing criteria. Forexample, if three samples are used to satisfy a landing criteria,recognizing that the first of the three samples occurred two sampleperiods prior to the third sample, the “down correction” timer wouldhave been preset during the routine 2110 to a value equal to two sampleperiods, and would therefore reflect a time period that has elapsedsince the time of that first sample.

At the step 2114, the value of Ts is set to be equal to the currentvalue of the Ts timer minus the current value of the “down correction”timer. The Ts timer may have been preset to the value of the “downcorrection” timer in connection with a step 2120 (described below)during a previous iteration of the “heel-strike event?” routine 1408, ormay have been reset in connection with the step 1426 (discussed above)of the primary routine 1400.

Similarly, at the step 2116, the value of Ta is set to be equal to thecurrent value of the Ta timer minus the current value of the “downcorrection” timer. Therefore, the value of Ta also takes into accountthe time at which the first of several samples used to satisfy one ofthe landing criteria was taken. The Ta timer may have been reset at thestep 1820 of the routine 1708 (FIG. 18), or it may have been reset atthe step 1426 of the primary routine 1400.

At the steps 2118 and 2120, the Tc timer and Ts timer each are preset tothe current value of the “down correction” timer.

After the step 2120, the “heel-strike event?” routine 1408 proceeds tothe step 1410 of the primary routine 1400, as shown in FIG. 14.

When, during the routine 2110 (described above), it is determined thatnone of the landing criteria were met as a result of the most recentsample taken at the step 2102, the “heel-strike event?” routine 1408proceeds to step 2122, wherein it is determined whether a variable“qualifying cycles” is greater than seven. The significance of thevariable “qualifying cycles,” as well as the so-called “qualificationflag,” will be explained below in connection with the description of the“is landing qualified?” routine 2112 (FIG. 24).

When, at the step 2122, it is determined that the variable “qualifyingcycles” is not greater than seven, the “heel-strike event?” routine 1408proceeds first to the routines 1504 and 1506 (discussed above), and thenback to the step 2102, wherein another sample of the signals 710 and 712is taken.

When, at the step 2122, it is determined that the variable “qualifyingcycles” is greater than seven, the “heel-strike event?” routine 1408proceeds to steps 2124 and 2126, wherein the variable “qualifyingcycles” is reset to zero, and the “qualification flag” is set to false.

After the step 2126, the “heel-strike event?” routine 1408 proceedsfirst to the routines 1504 and 1506 (discussed above), and then back tothe step 2102, wherein another sample of the signals 710 and 712 istaken.

When, at during the “is landing qualified?” routine 2112, it isdetermined that a heel-strike event 702 has not yet been confirmed, the“heel-strike event?” routine 1408 proceeds first to the routines 1504and 1506 (discussed above), and then back to the step 2102, whereinanother sample of the signals 710 and 712 is taken.

FIG. 22 shows an example implementation of the routine 2110 shown inFIG. 21. As mentioned above, the routine 2110 serves to identify one ormore characteristics in the signals 710 and 712 that satisfy at leastone of a plurality of predetermined criteria consistent with theoccurrence of a heel-strike event 702.

As shown, the routine 2110 begins at a step 2202, wherein it isdetermined whether the difference between a current sample and the nextmost recent sample is greater than the variable “threshold.” Asmentioned above, the value of the variable “threshold” may bedynamically adjusted based upon at least one characteristic of one ormore previously taken samples. For example, in the illustrative routine1704 described below in connection with FIG. 23, samples taken duringthe last five footsteps of the user 112 are used to dynamically set thevalue of the variable “threshold.” It should be appreciated, however,that the quantity “threshold” may alternatively be a fixed (i.e.,non-variable) value, and the invention is not limited to embodimentsthat employ a dynamically-adjusted value as the “threshold.”

When, at the step 2202, it is determined that the difference between thecurrent sample and the next most recent sample is greater than the valueof the variable “threshold,” the routine 2110 proceeds to a step 2204,wherein a variable “down correction value” is set to be equal to thesingle sample period between the two samples. The variable “downcorrection value” is used to preset the “down correction” timer inconnection with the “is landing qualified?” “is landing qualified?”routine 2112 (see FIG. 24).

After the step 2204, the routine 2110 proceeds immediately to the “islanding qualified?” “is landing qualified?” routine 2112 of the“heel-strike event?” routine 1408, as shown in FIG. 21.

When, at the step 2202, it is determined the difference between the twomost recent samples is not greater than the value of the variable“threshold,” the routine 2110 proceeds to a step 2206, wherein it isdetermined whether the sum of the last three differences (i.e., thethree differences between consecutive ones of the last four samples) isgreater than two times the value of the variable “threshold.”

When, at the step 2206, it is determined that the sum of the last threedifferences is greater than two times the value of the variable“threshold,” the routine 2110 proceeds to a step 2208, wherein it isdetermined whether the first one of the last three differences isgreater than two-thirds of the value of the variable “threshold.”

When, at the step 2208, it is determined that the first of the lastthree differences is greater than two-thirds of the value of thevariable “threshold,” the routine 2110 proceeds to a step 2210, whereinthe variable “down correction value” is set to be equal to three timesthe sample period. The variable “down correction value” is set to thisvalue because it is recognized that three sample periods have occurredsince the first of the four samples analyzed in connection with thesteps 2206 and 2208 was taken.

When, at the step 2208, it is determined that the first of the lastthree differences is not greater than two-thirds of the value of thevariable “threshold,” the routine 2210 proceeds to a step 2212(described below).

When, at the step 2206, it is determined that the sum of the last threedifferences is not greater than two times the value of the variable“threshold,” the routine 2110 also proceeds to the step 2212.

At the step 2212, it is determined whether three of the last fourdifferences (i.e., the differences between consecutive ones of the lastfive samples) are greater than two-thirds of the value of the variable“threshold.”

When, at the step 2212, it is determined that three of the last fourdifferences are greater than two-thirds of the value of the variable“threshold,” the routine 2110 proceeds to a step 2214, wherein it isdetermined whether the first one of the last four differences is greaterthan two-thirds of the value of the variable “threshold.”

When, at the step 2214, it is determined that the first one of the lastfour differences is greater than two-thirds of the value of the variable“threshold,” the routine 2110 proceeds to a step 2216, wherein thevariable “down correction value” is set to be equal to four times thesample period. The variable “down correction value” is set to this valuebecause it is recognized that four full sample periods have elapsedsince the first of the five samples analyzed in connection with thesteps 2212 and 2214 was taken.

When, at the step 2214, it is determined that the first of the last fourdifferences is not greater than two-thirds of the value of the variable“threshold,” the routine 2110 proceeds to a step 2218, wherein thevariable “down correction value” is set to be equal to three times thesample period. The variable “down correction value” is set to this valuebecause it is recognized that the first of the last five samples was notused in satisfying a criterion of the steps 2212 and 2214, but that thesecond of the last five samples must have been so used. Therefore, threesample periods would have elapsed between the second of the last fivesamples and the most recent one of the last five samples.

When, at the step 2212, it is determined that three of the last fourdifferences are not greater than two-thirds of the value of the variable“threshold,” routine 2110 proceeds to a step 2220, wherein it isdetermined whether the difference between any two of the last foursamples is greater than “40” levels (using the scale of 0-256 levelsdiscussed above in connection with FIG. 7).

When, at the step 2220, it is determined that the difference between twoof the last four samples is greater than “40” levels, the routine 2110proceeds to a step 2222, wherein the variable “down correction value” isset to be equal to a single sample period.

After the step 2222, the routine 2110 proceeds to the “is landingqualified?” routine 2112 of the routine 1408, as shown in FIG. 21.

When, at the step 2220, it is determined that no difference between anytwo of the last four samples is greater than “40” levels, the routine2110 proceeds to the step 2122 of the “heel-strike event?” routine 1408,as shown in FIG. 2L

FIG. 23 shows an example implementation of the routine “updatethreshold” 1704, which may be performed after each of the steps 1702 and2102 of the “toe-off event?” routine 1404 and the “heel-strike event?”routine 1408, respectively.

As shown in FIG. 23, the “update threshold” routine 1704 begins at astep 2302, wherein it is determined whether the sample is less than“−64.” Again, it should be appreciated that each “sample” takenrepresents a difference between the current level (on a scale of 0-255)of the active signal 712 and the current level of the reference signal710. Therefore, a given sample will be less than “−64” only when thecurrent level of the active signal 712 is more than “64” levels belowthe current level of the reference signal 710.

When, at the step 2302, it is determined that the current sample is notless than “−64,” the “update threshold” routine 1704 terminates.

When, at the step 2302, it is determined that the current sample is lessthan “−64,” the “update threshold” routine 1704 proceeds to a step 2304,wherein a variable “neg_val” is set to be equal to the absolute value ofthe sample (which will be positive and greater than “64”) minus “64.”

After the step 2304, the “update threshold” routine 1704 proceeds to astep 2306, wherein it is determined whether five consecutive “valid”steps have been identified in connection with the primary routine 1400of FIG. 14. A valid step may be identified, for example, when the“activity flag” is true and the “step error flag” is false for fiveconsecutive iterations of the primary routine 1400.

When, at the step 2306, it is determined that five consecutive validsteps have not yet been identified, the “update threshold” routine 1704proceeds to a step 2312, wherein the variable “threshold” is set to beequal to a default value of “25,”

After the step 2312, the “update threshold” routine 1704 terminates.

When, at the step 2306, it is determined that five consecutive validsteps have been identified, the “update threshold” routine 1704 proceedsto a step 2308, wherein the current value of the variable “neg_val” isaveraged with all other values of the variable “neg_val” that have beenobtained during the last five footsteps taken by the user 112, therebyobtaining another variable “ave_neg_val.”

After the step 2308, the “update threshold” routine 1704 proceeds to astep 2310, wherein the variable “threshold” is set to be equal to “15,”plus the value of the variable “ave_neg_val” divided by 2.

After the step 2310, the “update threshold” routine 1704 terminates.

FIG. 24 is a flow diagram of an example implementation of the “islanding qualified?” routine 2112 Of the “heel-strike event?” routine1408 shown in FIG. 21. As shown in FIG. 24, the “is landing qualified?”routine 2112 begins at a step 2402, wherein it is determined whether the“qualification flag” is true. The “qualification flag” may, for example,be one of the values initialized in connection with the step 2101 (FIG.21), so that the “qualification flag” is set to be false when the “islanding qualified?” routine 2112 begins.

When, at the step 2402, it is determined that the “qualification flag”is not yet true, the “is landing qualified” routine 2112 proceeds to astep 2410, wherein the “qualification flag” is set to true. Because the“is landing qualified?” routine 2112 is entered only when at least oneof the several landing criteria of the routine 2110 has been met, the“qualification flag” is set to true in connection with the step 2410only after at least one of these landing criteria has been met. Asexplained in more detail below, the setting of the “qualification flag”to true in connection with the step 2410 enables a heel-strike event 702to possibly be qualified during a subsequent iteration of the “islanding qualified?” routine 2112.

After the step 2410, the “is landing qualified?” routine 2112 proceedsto a step 2412, wherein the “down correction” timer is set to be equalto the current value of the variable “down correction value.” Thevariable “down correction value” may have been set, for example, inconnection with the routine 2110 of FIG. 22. By so setting the “downcorrection” timer at the step 2412, the “down correction” timercorrectly reflects the time period that has elapsed since the first ofseveral samples that satisfied one of the landing criteria of theroutine 2110 was taken. In this manner, when a heel-strike event 702eventually is qualified in connection with a subsequent iteration of the“heel-strike event?” routine 1408, the value of the “down correction”timer can be used to “correct” the values of the Ts and Ta timers inconnection with the steps 2114 and 2116, respectively, of the“heel-strike event?” routine 1408 of FIG. 21.

After the step 2412, the “is landing qualified?” routine 2112 proceedsto steps 2414 and 2416, wherein the variables “qualifying cycles” and“sum_of_diffs are each reset to zero. In accordance with one embodimentof the invention, after the “qualification flag” is set to true at thestep 2410 in response to one of the landing criteria of the routine 2110being met, the “heel-strike event?” routine 1408 requires again that oneof the landing criteria be met, this time within the next six iterationsof the “heel-strike event?” routine 1408. This is why, at the step 2122of the “heel-strike event?” routine 1408, it is determined whether thevariable “qualifying cycles” is greater than seven, and why thequalification flag is set to false at the step 2126 if more than sevenqualifying cycles have elapsed.

After the step 2416, the “is landing qualified?” routine 2112 proceedsto the step 2102 of the “heel-strike event?” routine 1408, as shown inFIG. 21, wherein the next sample of the signals 710 and 712 is taken.

When, at the step 2402 (described above), it is determined that the“qualification flag” is true, the “is landing qualified?” routine 2112proceeds to a step 2404, wherein it is determined whether the variable“qualifying cycles” is greater than seven.

When, at the step 2404, it is determined that the variable “qualifyingcycles” is greater than seven, the “is landing qualified?” routine 2112proceeds to a step 2418, wherein the “qualification flag” is set tofalse, thereby preventing the identified characteristic of the signals710 and 712 that initially caused the qualification flag to be set totrue from being qualified as an actual heel-strike event 702.

When, at the step 2404, it is determined that the variable “qualifyingcycles” is not greater than seven, the “is landing qualified?” routine2112 proceeds to a step 2406, wherein it is determined whether more thanone qualifying cycle has elapsed since the “qualification flag” was setto true. In other words, the step 2406 prevents the “is landingqualified?” routine 2112 from qualifying a heel-strike event 702 when alanding criterion is met only during two consecutive iterations of the“heel-strike event?” routine 1408. Rather, the step 2406 requires the“heel-strike event?” routine 1408 to undergo at least one iterationafter a first landing criterion is met before a second landing criterioncan be used to qualify a heel-strike event 702.

When, at the step 2406, it is determined that the variable “qualifyingcycles” is not greater than one, the “is landing qualified?” routine2112 proceeds to the step 2102 of the “heel-strike event?” routine 1408so that a new sample may be taken.

When, at the step 2406, it is determined that the variable “qualifyingcycles” is two or greater, the “is landing qualified?” routine 2112proceeds to a step 2408, wherein the variable “sum_of_diffs” isincremented by the difference between the current sample and the nextmost recent sample taken at the step 2102 of the “heel-strike event?”routine 1408.

After the step 2408 (discussed above), the “is landing qualified?”routine 2112 proceeds to a step 2420, wherein it is determined whetherthe value of the variable“sum_of_diffs” is greater than two times thevalue of the variable “threshold” (discussed above).

When, at the step 2420, it is determined that the value of the variable“sum_of_diffs” is not greater than two times the value of the variable“threshold,” the “is landing qualified?” routine 2112 proceeds to thestep 2102 of the “heel-strike event?” routine 1408 so that the nextsample may be taken.

When, at the step 2420, it is determined that the value of the variable“sum_of_diffs” is greater than two times the value of the variable“threshold,” the “is landing qualified?” routine 2112 proceeds to thesteps 2114, 2116, 2118, and 2120 of the “heel-strike event?” routine1408, as shown in FIG. 21.

FIG. 25 is a flow diagram showing an example implementation of the“check activity?” routine 1414 of the primary routine 1400 (FIG. 14). Asshown, the “check activity?” routine 1414 begins at a step 2502, whereinit is determined whether the “activity flag” is true.

When, at the step 2502, it is determined that the “activity flag” istrue, the “check activity?” routine 1414 terminates.

When, at the step 2502, it is determined that the “activity flag” is nottrue, the “cheek activity?” routine 1414 proceeds to a step 2504,wherein it is determined whether the “activity flag” has been false formore than sixty minutes.

When, at the step 2504, it is determined that the “activity flag” hasbeen false for more than sixty minutes, the routine “check activity?”routine 1414 proceeds to a step 2510, wherein the “shutting down flag”is set to false. As described above in connection with the “processbutton” routine 1504 (FIG. 16), the placing of the “shutting down flag”in the false state will cause the foot-mounted device 102 to be powereddown unless the user 112 pushes the button 204 within 30 seconds (seesteps 1620-24).

When, at the step 2504, it is determined that the “activity flag” hasnot been false for more than sixty minutes, the “check activity?”routine 1414 proceeds to a step 2506, wherein it is determined whetherthe “activity flag” has been false for more than five minutes.

When, at the step 2506, it is determined that the “activity flag” hasbeen false for more than five minutes, the “check activity?” routine1414 proceeds to a step 2508, wherein the foot-mounted unit 102 isplaced into a low-power sleep mode for approximately five seconds. Thus,whenever it is determined that the foot-mounted unit 102 has beeninactive for a particular period of time (e.g., five minutes), it may bekept in a low-power mode, waking up only briefly every five seconds orso to determine whether any new activity can be identified.

After the step 2508, the “check activity?” routine terminates.

When, at the step 2506, it is determined that the “activity flag” hasnot been false for more than 5 minutes, the “check activity?” routine1414 terminates.

FIG. 26 is a flow diagram of an illustrative implementation of the“smooth and calculate” routine 1416 of the primary routine 1400 (FIG.14.). As shown in FIG. 26, the “smooth and calculate” routine 1416begins at a step 2602, wherein it is determined whether the “activityflag” is true.

When, at the step 2602, it is determined that the “activity flag” is nottrue, the “smooth and calculate” routine 1416 terminates.

When, at the step 2602, it is determined that the “activity flag” istrue, the “smooth and calculate” routine 1416 proceeds to a step 2604,wherein it is determined whether the “step error flag” is false.

When, at the step 2604, it is determined that the “step error flag” isfalse, the “smooth and calculate” routine 1416 terminates.

When, at the step 2604, it is determined that the “step error flag” isnot false, the “smooth and calculate” routine 1416 proceeds to a routine2606, wherein, for each footstep, the measured time between consecutivetoe-off events 704 is compared to the measured time betweencorresponding consecutive heel-strike events 702, and correction are(possibly) made based upon these comparisons. An example implementationof the routine 2606 is described below in connection with FIGS. 27 and28.

After the routine 2606, the “smooth and calculate” routine 1416 proceedsto a routine 2608, wherein the values of Te and Ts measured during themost recent iteration of the primary routine 1400 (as well as the ratiobetween these values) are checked to be sure that they fall withinacceptable ranges. An example implementation of the routine 2608 isdescribed below in connection with FIGS. 29 and 30.

After the routine 2608, the “smooth and calculate” routine 1416 proceedsto a routine 2610, during which an average value of the foot contacttimes (Tc_(AVE)) for the last several footsteps is calculated. Inaccordance with one embodiment, the number of Tc values used tocalculate the value of Tc_(AVE) is dependent upon the difference betweenthe most recent Tc value and the last-calculated value of Tc_(AVE). Anexample implementation of the routine 2610 is described below inconnection with FIG. 31.

After routine 2610, the “smooth and calculate” routine 1416 proceeds toa step 2611, wherein it is determined whether the user 112 is walking.This determination may, for example, be made solely upon the mostrecently measured Tc value. According to one embodiment, when the mostrecent Tc value is greater than “420” milliseconds, it is determined atstep 2611 that the user 112 is walking. On the other hand, when the mostrecent Tc value is less than “420” milliseconds, it is determined at thestep 2611 that the user 112 is running.

When, at the step 2611, it is determined that the user 112 is walking,the “smooth and calculate” routine 1416 proceeds to a step 2612, whereinthe most recent “walking” Tc value (Tc_(W)) is added to a running totalof previously-obtained “walking” Tc values (ΣTc_(W)), and the current“walking” Ts value (Ts) is added to a running total ofpreviously-obtained “walking” Ts values (ΣTs).

After the step 2612, the “smooth and calculate” routine 1416 terminates.

When, at the step 2611, it is determined that the user 112 is notwalking, the “smooth and calculate” routine 1416 proceeds to a step2614, wherein the most recent “running” Tc value (Tc_(R)) is added to arunning total of previously-obtained “running” Tc values (ΣTc_(R)), andthe most recent “running” Ts value (Ts_(R)) is added to a running totalof previously-obtained “running” Ts values (I Ts_(R)).

After the step 2614, the “smooth and calculate” routine 1416 terminates.

The running totals ΣTc_(W), ΣTs_(W), ΣTc_(W), and ΣTs_(R) may be stored,for example, in respective 12-bit registers, with each bit representinga particular discrete period of time. In one embodiment of theinvention, the current Tc and Ts values are added to the respectiveregisters regardless of whether such addition would cause the registersto drop a most significant bit of the current count (i.e., the registersare permitted to roll over to zero). In such an embodiment, thefoot-mounted unit 102 and/or the wrist-mounted unit 104 may be left todetermine when such a roll over has occurred.

FIG. 27 is a timing diagram illustrating how step time (Ts) measurementsbetween consecutive toe-off events 704 and corresponding consecutiveheel-off events 702 may be compared to ensure that each measured toe-offevent 704 and each measured heel-off event 702 was identifiedaccurately. In the example of FIG. 27, toe-off events 704 are indicatedby hatch marks along the line 2702, e.g., the hatch mark 2702 a. Twoseparate toe-to-toe step times (i.e., Ts(TT)-_(i) and Ts(TT)) arelabeled between respective pairs of the hatch marks on the line 2702.Similarly, heel-strike events 702 are indicated by hatch marks along theline 2704, e.g., the hatch mark 2704 a. Three separate heel-to-heel steptimes (i.e., Ts(HH)-2, Ts(HH)_(·1), and Ts(HH)) are labeled betweenrespective pairs of the hatch marks on the line 2704.

FIG. 28 is a flow diagram of an illustrative implementation of theroutine 2606 of the “smooth and calculate” routine 1416 (FIG. 26).During the routine 2606, heel-to-heel and toe-to-toe step times, such asthose illustrated in FIG. 27, may be compared to verify the accuracy ofthe identified occurrences of the heel-strike events 702 and toe-offevents 704 on which these values are based.

As shown in FIG. 28, the routine 2606 beings at a step 2802, wherein itis determined whether the heel-to-heel step time Ts(HH)_(·1) is greaterthan the heel-to-heel step time Ts(HH).

When, at the step 2802, it is determined that the heel-to-heel step timeTs(HH)_(—1) is greater than the heel-to-heel step time Ts (HH), theroutine 2606 proceeds to a step 2804, wherein it is determined whetherthe heel-to-heel step time Ts(HH) is less than the toe-to-toe step timeTs(TT).

When, at the step 2804, it is determined that the heel-to-heel step timeTs(HH) is not less than the toe-to-toe step time Ts(TT), the routine2606 terminates.

When, at the step 2804, it is determined that the heel-to-heel step timeTs(HH) is less than the toe-to-toe step time Ts(TT), the routine 2606proceeds to a step 2818, wherein the current value of Tc is replacedwith the next most recent value of Tc. It should be appreciated that,when the questions asked by the steps 2802 and 2804 are both answered inthe affirmative, a determination has been made that the heel-strikeevent 702 corresponding to the hatch mark 2704 a in FIG. 27 wasidentified too late, and that the Tc value obtained with respect to this“late landing” should be replaced with a previously obtained “good” Tcvalue.

When, at the step 2802, it is determined that the heel-to-heel Ts valueTs(HH)-_(i) is not greater than the heel-to-heel step value Ts(HH), theroutine 2606 proceeds to a step 2806, wherein it is determined whetherthe heel-to-heel step time Ts(H14)-₁ is less than the heel-to-heel steptime Ts(HH).

When, at the step 2806, it is determined that the heel-to-heel step timeTs(HH)_(·1) is less than the heel-to-heel step time Ts(HH), the routine2606 proceeds to a step 2808, wherein it is determined whether theheel-to-heel step time Ts(HH) is greater than the toe-to-toe step timeTs(TT).

When, at the step 2808, it is determined that the heel-to-heel step timeTs(HH) is not greater than the toe-to-toe step time Ts(TT), the routine2606 terminates.

When, at the step 2808, it is determined that the heel-to-heel step timeTs(HH) is greater than the toe-to-toe step time Ts(TT), the routine 2606proceeds to the step 2818, wherein the current value of Te is replacedwith the next most recent value of Tc. It should be appreciated that,when the questions asked by the steps 2806 and 2808 are both answered inthe affirmative, a determination has been made that the heel-strikeevent 702 corresponding to the hatch mark 2704 a in FIG. 27 wasidentified too early, and that the Te value obtained with respect tothis “early landing” should be replaced with a previously obtained“good” ⁻re value.

When, at the step 2806 (discussed above), it is determined that theheel-to-heel step time Ts(HH)_(A) is not less than the heel-to-heel steptime Ts(HH), the routine 2606 proceeds to a step 2810, wherein it isdetermined whether the toe-to-toe step time Ts(TT)_(—i) is greater thanthe toe-to-toe step time Ts(TT).

When, at the step 2810, it is determined that the toe-to-toe step timeTs(TT)-_(i), is greater than the toe-to-toe step time Ts(TT), theroutine 2606 proceeds to a step 2812, wherein it is determined whetherthe toe-to-toe step time Ts(TT) is less than the heel-to-heel step timeTs(HH).

When, at the step 2812, it is determined that the toe-to-toe step timeTs(TT) is not less than the heel-to-heel step time Ts(HH), the routine2606 terminates.

When, at the step 2812, it is determined that the toe-to-toe step timeTs(TT) is less than the heel-to-heel step time Ts(HH), the routine 2606proceeds to the step 2818, wherein the current value of Tc is replacedwith the next most recent value of Tc. It should be appreciated that,when the questions asked by the steps 2810 and 2812 are both answered inthe affirmative, a determination has been made that the toe-off eventcorresponding to the hatch mark 2702 a in FIG. 27 was identified toolate, and that the Tc value obtained with respect to this “late takeoff”should be replaced with a previously obtained “good” Tc value.

When, at the step 2810 (discussed above), it is determined that thetoe-to-step time Ts(TT)-_(i) is not greater than the toe-to-toe steptime Ts(TT), the routine 2606 proceeds to a step 2814, wherein it isdetermined whether the toe-to-toe step time Ts(TT)-₁ is less than thetoe-to-toe step time Ts(TT).

When, at the step 2814, it is determined that the toe-to-toe step timeTs(TT)_(·1) is less than the toe-to-toe step time Ts(TT), the routine2606 proceeds to a step 2816, wherein it is determined whether thetoe-to-toe step time Ts(TT) is greater than the heel-to-heel step timeTs(HH).

When, at the step 2816, it is determined that the toe-to-toe step timeTs(TT) is not greater than the heel-to-heel step time Ts(HH), theroutine 2606 terminates.

When, at the step 2816, it is determined that the toe-to-toe step timeTs(TT) is greater than the heel-to-heel step time Ts(HH), the routine2606 proceeds to the step 2818, wherein the current value of Tc isreplaced with the next most recent value of Tc. It should be appreciatedthat, when the questions asked by the steps 2814 and 2816 are bothanswered in the affirmative, a determination has been made that thetoe-off event corresponding to the hatch mark 2702 a in FIG. 27 wasidentified too early, and that the Tc value obtained with respect tothis “early takeoff” should be replaced with a previously obtained“good” Tc value.

When, at the step 2814 (discussed above), it is determined that thetoe-to-toe step time Ts(TT)⁻¹ is not less than the toe-to-toe step timeTs(TT), the routine 2606 terminates.

FIGS. 29A and 29B are graphs representing, respectively, ratios of thevalues of Tc and Ts measured for multiple individuals throughout avariety of walking and running speeds. Based upon empiricalmeasurements, we have discovered that, when a user is walking, each ofthe measured ratios of Tc_(W) to Ts_(W) (e.g., each of the points 2902W)tends to fall between a first pair of lines identified by respectiveequations involving Tc_(W) and Ts_(W). Similarly, we have discoveredthat, when a user is running, each of the measured ratios of Tc_(R) toTs_(R) (e.g., each of the points 2902R) tends to fall between a secondpair of lines identified by respective equations involving Tc_(R) andTs_(R).

In light of these discoveries, in one embodiment of the invention, foreach footstep taken by the user 112, the ratio of Te to Ts is checked tomake sure it falls within the bounds identified by these lines. That is,for Tc values in the walking range (e.g., above 420 milliseconds), eachmeasured ratio of Tc_(W) to Ts_(W) is checked to make sure it fallsbetween the lines 2904 a and 2904 b of FIG. 29A. Similarly, for Tcvalues in the walking range (e.g., less than 420 milliseconds), eachmeasured ratio of Tc_(R) to Ts_(R) is checked to make sure it fallsbetween the lines 2906 a and 2906 b of FIG. 29B. Each of the Tc and Tsvalues also may be separately checked to ensure that, by itself, itfalls within a reasonable range for such values. As shown, the lines2904 a and 2904 b may be defined by the equations Tc_(WMAX)⁼Ts_(W)*X_(W)+A_(W) and Tc_(WMIN)=Ts_(W)*Y_(W)+B_(W), respectively,wherein the values X_(W) and Y_(W) are slopes of the respective lines,and the values Aw and B_(W) are the respective Y-intercepts thereof.Similarly, as shown, the lines 2906 a and 2906 b may be defined by theequations Tc_(RMAX)*X_(R)+A_(R) and Tc_(RMIN)=TS_(R)*Y_(R)+B_(R),respectively, wherein the values X_(R) and Y_(R) are slopes of therespective lines, and the values A_(R) and B_(R) are the respectiveY-intercepts thereof.

FIG. 30 is a flow diagram illustrating an example implementation of theroutine 2608 of the “smooth and calculate” routine 1416 shown in FIG.26. Pursuant to the routine 2608, the values of Tc and Ts are checkedindividually to ensure that each falls within an acceptable range, andeach ratio of these two values is checked as well to ensure that itfalls within the bounds of the lines discussed above.

As shown, the routine 2608 begins at a step 3002, wherein it isdetermined whether the measured Tc value is less than “420”milliseconds.

When, at the step 3002, the measured Te value is determined to be lessthan “420” milliseconds, it is determined that the user 112 is running,and the routine 2608 proceeds to a step 3004, wherein it is determinedwhether the measured Tc value is greater than “120” milliseconds.

When, at the step 3004, it is determined that the Tc value is notgreater than “120” milliseconds, it is determined that the Tc value isoutside of the acceptable range for Tc values for running, and theroutine 2608 proceeds to a step 3020, wherein the measured Tc value isreplaced with the next most recent Tc value, and the routine 2608 thenterminates.

When, at the step 3004, it is determined that the measured Tc value isgreater than “120” milliseconds, the routine 2608 proceeds to a step3006, wherein it is determined whether the measured Ts value is between“400” and “910” milliseconds (i.e., an acceptable range of Ts values forrunning).

When, at the step 3006, it is determined that the measured Ts value isnot between “400” and “910” milliseconds, it is determined that the Tsvalue is outside of the acceptable range for Ts values for running, andthe routine 2608 proceeds to the step 3020, wherein the measured Tcvalue is replaced with the next most recent Te value, and the routine2608 then terminates.

When, at the step 3006, it is determined that the measured Ts value isbetween “400” and “910” milliseconds, the routine 2608 proceeds to steps3008 and 3010, wherein it is determined whether the ratio of themeasured Tc and Ts values falls between “running” lines 2906 a and 2906b of FIG. 29.

When, at the steps 3008 and 3010, it is determined that the ratio of themeasured Tc and Ts values falls above the line 2906 a (step 3008) orbelow the line 2906 b (step 2910), the routine 2608 proceeds to the step3020, wherein the measured Tc value is replaced with the next mostrecent Tc value, and the routine 2608 then terminates.

When, at the steps 3008 and 3010, it is determined that the ratio of themeasured Tc and Ts values falls both below the line 2906 a (step 3008)and above the line 2906 b (step 2910), the routine 2608 terminates.

When, at the step 3002 (described above), it is determined that themeasured Tc value is not less than “420” milliseconds, it is determinedthat the user 112 is walking, and the routine 2608 proceeds to a step3012, wherein it is determined whether the measured Tc value is lessthan “900” milliseconds.

When, at the step 3012, it is determined that the measured Tc value isnot greater than “900” milliseconds, it is determined that the Tc valueis outside of the acceptable range for Tc values for walking, and theroutine 2608 proceeds to the step 3020, wherein the measured Tc value isreplaced with the next most recent Tc value, and the routine 2608 thenterminates.

When, at the step 3012, the measured Tc value is determined to be lessthan “900” milliseconds, the routine 2608 proceeds to a step 3014,wherein it is determined whether the measured Ts value is between “700”and “1360” milliseconds (i.e., an acceptable range of Ts values forwalking).

When, at the step 3014, it is determined that the measured Ts value isnot between “700” and “1360” milliseconds, the routine 2608 proceeds tothe step 3020, wherein the measured Tc value is replaced with the nextmost recent Tc value, and the routine 2608 then terminates.

When, at the step 3014, it is determined that the measured Ts value isbetween “700” and “1360” milliseconds, the routine 2608 proceeds tosteps 3016 and 3618, wherein it is determined whether the ratio of themeasured values of Tc and Ts falls between the lines 2906 a and 2906 bof FIG. 29.

When, at the steps 3016 and 3018, it is determined that the ratio of themeasured values of Tc and Ts falls above the line 2906 a (step 3016) orfalls below the line 2906 b (step 3018), the routine 2608 proceeds tothe step 3020, wherein the measured Tc value is replaced with the nextmost recent Tc value, and the routine 2608 then terminates. —85—

When, at the steps 3016 and 3018, it is determined that the ratio of themeasured values of Tc and Ts falls both below the line 2906 a (step3016) and above the line 2906 b (step 3018), the routine 2608terminates.

FIG. 31 is a flow diagram showing an illustrative implementation of theroutine 2610 of the “smooth and calculate” routine 1416 shown in FIG.26. As shown, the routine 2610 begins at steps 3102 and 3104, wherein itis determined whether the current Tc value and the next most recent Tcvalue are each more than eight seconds greater than the currently-storedvalue of Tc_(AVE) (i.e., the average value of Tc over the last severalsteps).

When, at the steps 3102 and 3104, it is determined that the current Tcvalue and the next most recent Tc value are each more than eight secondsgreater than the currently-stored value of Tc_(AVE), the routine 2610proceeds to a step 3110, wherein the two most recent Tc values obtained(including the current Tc value) are averaged to obtain a new value ofTc_(AVE), and the routine 2610 then terminates.

When, at the steps 3102 and 3104, it is determined that either thecurrent Tc value or the next most recent Tc value is not more than eightmilliseconds greater than the currently-stored value of Tc_(AVE), theroutine 2610 proceeds to steps 3106 and 3108, wherein it is determinedwhether the current Tc value and the next most recent Tc value are eachmore than eight milliseconds less than the currently-stored value ofTc_(AVE).

When, at the steps 3106 and 3108, it is determined that both the currentTc value and the next most recent value are each more than eightmilliseconds less than the currently-stored value of Tc_(AVE), theroutine 2610 proceeds to the step 3110, wherein the two most recent Tcvalues are averaged to obtain a new value of Tc_(AVE) and the routine2610 then terminates.

Therefore, the steps 3102-3108 ensure that, if at least two Tc valuessuddenly deviate from a current value of Tc_(AVE) by more than eightmilliseconds, the value of Tc_(AVE) will be updated using only the twomost recent values of Tc. This technique ensures that the value ofTc_(AVE) responds quickly to a new pace of the user 112 so that the usercan receive instant feedback regarding the same.

When, at the steps 3106 and 3108, it is determined that either thecurrent Tc value or the next most recent Tc value is not more than eightmilliseconds less than the currently-stored value of Tc_(AVE) theroutine 2610 proceeds to steps 3112 and 3114, wherein it is determinedwhether the current Tc value and the next most recent Tc value are eachmore than four milliseconds greater than the currently-stored value ofTc_(AVE).

When, at the steps 3112 and 2114, it is determined that the current Tcvalue and the next most recent Tc value are each more than fourmilliseconds greater than the currently stored value of Tc_(AVE), theroutine 2610 proceeds to a step 3120, wherein up to four of the mostrecent Tc values are averaged to obtain a new value of Tc_(AVE) and theroutine 2610 then terminates.

When, at the steps 3112 and 3114, either the current Tc value or thenext most recent Tc value is determined to not be more than fourmilliseconds greater than the currently-stored value of Tc_(AVE) theroutine 2610 proceeds to steps 3116 and 3118, wherein it is determinedwhether the current Tc value and the next most recent Tc value are eachmore than four milliseconds less than the currently-stored value ofTc_(AVE).

When, at the steps 3116 and 3118, is determined that the current Tcvalue and the next most recent Tc value are each more than fourmilliseconds less than the currently-stored value of Tc_(AVE), theroutine 2610 proceeds to the step 3120, wherein up to the four mostrecent Tc values are averaged to obtain a new value of Tea, and theroutine 2610 then terminates.

When, at the steps 3116 and 3118, it is determined that either thecurrent Tc value or the next most recent Tc value is not more than fourmilliseconds less than the currently-stored value of Tc_(AVE) theroutine 2610 proceeds to a step 3122, wherein up to nine of the mostrecent Tc values are averaged to obtain a new value of Tc_(AVE), and theroutine 2610 then terminates.

Based upon the above, it should be appreciated that the routine 2610ensures that the value Tc_(AVE) will be updated at a rate commensuratewith the rate at which the Tc values being measured are changing. Inthis manner, when the value Tc_(AVE) is used to calculate theinstantaneous pace of a user in locomotion on foot, the pace displayedto the user 112 may respond quickly to sudden changes in the user'space, but may also be “smoothed” over several footsteps when the user'space is relatively steady.

FIGS. 32A-H each shows the front face 308 of the wrist-mounted unit 104.In each of FIGS. 32A-H, the display 412 of the wrist-mounted unit 104has simultaneously displayed thereon a respective combination ofparameters. Any or all of these combinations of parameters may be madeavailable to the user 112, and the user 112 may select (e.g., by pushingone or more of the buttons 306 a-e) which combination is displayed at agiven time. In one illustrative embodiment of the invention, the usermay use the computer 428 (e.g., using software running on the computer428 and/or the network server 442) to select the combination ofparameters to be displayed on the display 412, and information relatingto the user's selection may then be selectively or automaticallytransmitted to the wrist and/or foot mounted units, e.g., via an RFcommunication channel. It should be appreciated that any otherparameters or information relating to the operation of the wrist-mountedunit 104 and/or the foot-mounted unit 102 (some of which are describedherein) may also be generated by the user via the computer 428 andtransmitted to the appropriate unit(s) in this manner.

In one illustrative embodiment of the invention, the display 412 hassimultaneously displayed thereon at least one determined performanceparameter of the user (e.g., pace) and at least one determined variablephysiological parameter of the user (e.g., heart rate), each of whichmay be determined, for example, using the techniques and devicesdescribed elsewhere herein. As used herein, “variable physiologicalparameter” refers to any physiological condition of a user's body thatmay experience a measurable change when the user is exercising, and isintended to encompass parameters such as heart rate, respiration rate,body temperature, lactate level, etc. The term “variable physiologicalparameter” is not intended to encompass static physiological parameterssuch as weight, height, etc. As used herein, “performance parameter”refers to any measurable amount, level, type or degree of physicalactivity engaged in by the user, and is intended to encompass parameterssuch as foot contact time, foot loft time, step time, instantaneousspeed, average speed, instantaneous pace, average pace, energyexpenditure rate, total energy expenditure, distance traveled, etc.

In the first example (FIG. 32A), the display 412 of the wrist-mountedunit 104 has displayed thereon: (a) the instantaneous pace of the user,(b) the average pace of the user during a particular outing, (c) thedistance traveled by the user during the outing, and (d) a chronographindicating the time that has elapsed during the outing. The advantagesof simultaneously displaying these particular parameters are numerous,especially for a runner engaged in a competition, e.g., a marathon, a10K, or the like. For example, during a race, the user 112 may increaseor decrease his or her current pace based upon the displayed value ofthe user's average pace thus far during the race. In this manner, theuser 112 may ensure that the overall average pace for the completed raceis close to a predetermined target value.

In lieu of a numeric display, this same advantage may be achieved, forexample, using two so-called “pace fans” akin to the hands on awristwatch. For example, one fan (e.g., a watch hand) may maintain anangular orientation indicative of the user's current pace, and the otherfan may maintain an angular orientation indicative of the user's averagepace. As yet another alternative, side-by-side graduated bar graphs maybe displayed to the user, with the height of each bar graphcorresponding to a respective one of the user's current pace and theuser's average pace. The benefits of displaying the chronograph valueand the distance traveled by the user, both separately and incombination with the other units in the example of FIG. 32A, areapparent and therefore will not be discussed further. In the nextexample (FIG. 32B), the display 412 of the wrist-mounted unit 104 hasdisplayed thereon: (a) the total calories expended during an outing, (b)the distance traveled by the user during the outing, (c) the currentheart rate of the user (or average heart rate of the user during theouting), and (d) a chronograph indicating the total time that haselapsed during the outing.

In the example of FIG. 32C, only the time and date are displayed. Theuser may, for example, selectively choose this display combination whenthe user is engage in non-athletic activities, and simply wants atypical wrist-watch display.

In the next example (FIG. 320), the display 412 of the wrist-mountedunit 104 has displayed thereon: (a) a chronograph indicating the totaltime that has elapsed during the outing, (b) the distance traveled bythe user during the outing, (c) the instantaneous pace of the user, (d)the average pace of the user during the outing, (e) the current heartrate of the user (or the average heart rate of the user during theouting), (f) the total calories expended by the user during the outing,(g) the instantaneous speed of the user, and (h) the average speed ofthe user during the outing.

In the example of FIG. 32E, the display 412 has displayed thereon anindication that a calibration procedure has been selected. Alsodisplayed is an indication as to whether a “walk” calibration or a “run”calibration has been selected. In this mode, the user may start and stopa calibration procedure (e.g., by depressing one or more of the buttons306 a-e) during which the calibration constants discussed above may bedetermined.

In the example of FIG. 32F, the display 412 of the wrist-mounted unit104 has displayed thereon: (a) the instantaneous speed of the user, (b)the calories expended by the user during the outing, (c) a chronographindicating the total time that has elapsed during the outing, and (d)the distance traveled by the user during the outing.

In the example of FIG. 32G, the display 412 of the wrist-mounted unit104 has displayed thereon: (a) the instantaneous pace of the user, (b)the distance traveled by the user during the outing, (c) the averagepace of the user during the outing, and (d) the current heart rate ofthe user.

Finally, in the example of FIG. 32H, the display 412 of thewrist-mounted unit 104 has displayed thereon: (a) the instantaneousspeed of the user, (b) the distance traveled by the user during theouting, (c) the average speed of the user during the outing, and (d) thecurrent heart rate of the user.

With regard to the displayable values discussed above in connection withFIGS. 32A-H, it should be appreciated that any of the values that aredescribed as being monitored and displayed during a particular outingmay additionally or alternatively be monitored and displayed duringmultiple outings. That is, the value displayed may alternatively be thecumulative total or overall average value for each of the severaloutings. For example, the distance displayed may represent the distancetraveled by the user 112 during all “runs” engaged in by the user 112during a week, a month, a year, etc., or the average pace displayed mayrepresent the average pace of the user 112 during all “runs” engaged inby the user 112 during a week, a month, a year, etc.

In addition, it should be appreciated that any or all of the parametersdescribed as being displayable may additionally or alternatively bedisplayed on a display on the foot-mounted unit 102, or on a displaydisposed remote from the user 112, e.g., the computer 428 or anotherdisplay (not shown) held by a track coach or the like. Other examples ofparameters that may be displayed on the wrist-mounted unit 104 and/orthe foot-mounted unit 102, either together with or separately from theexamples shown in FIGS. 32A-H, include cadence (stride rate), stridelength, and acceleration. Illustrative techniques for determining anddisplaying each of these parameters are discussed elsewhere herein.

In one illustrative embodiment of the invention, the ARC processor 410in the wrist-mounted unit 104 is configured (e.g., by instructionsstored in the memory 404) to calculate time “splits” automatically on aper-unit-distance basis (e.g., per mile or kilometer). For example, theARC processor 410 may calculate a time split for each of the twenty sixmiles of a marathon. Such splits may be displayed to the user 112 duringthe event and/or may be stored in memory for later retrieval andanalysis and/or display. Because information regarding total distancetraveled and a chronograph are both maintained in the wrist-mounted unit104, such splits may readily be calculated by automatically recordingthe time of the chronograph each time a split distance is reached. Ofcourse, splits may alternatively be determined using the foot-mountedunit 102, or another device in the system that receives the necessaryinformation. When the foot-mounted unit 102 is used to calculate splits,the foot-mounted unit 102 can display the split information itselfand/or it can transmit the information to the wrist-mounted unit 104 fordisplay.

In one illustrative embodiment, in addition to being given informationregarding the last split completed, the user can also be provided withfeedback regarding progress on the split currently being measured. Forexample, the user may be provided with an indication regarding theuser's average pace since the last split, or the projected time for thecurrent split based upon the user's average pace since the last split.

In one embodiment of the invention, one or more of the devices in thesystem (i.e., the foot-mounted unit 102, the wrist-mounted unit 104, thecomputer 428, and/or the network server 442) may be used to determinewhether the speed, pace and/or heart rate of the user 112 are withinparticular zones. As used herein, the term “zone” refers to a range ofvalues bounded by at least one threshold. Therefore, unless otherwisespecified, zone may refer to any one of: (1) all values greater than acertain value, (2) all values less than a certain value, and (3) allvalues falling between two different values. If it is determined thatone or more of the monitored parameters falls outside the particularzone therefor, an output may be generated by the processor performingthe monitoring. This output may, for example, cause informationrepresenting the same to be stored in memory to later provide feedbackto the user 112, or it may cause an output that is perceptible to theuser to be generated so that the user is provided with immediatefeedback. When employed, any of a number of outputs perceptible to theuser 112 may be used, and the invention is not limited to any particulartype of perceptible output. Examples of suitable output devices include:audio indicators such as buzzers, chimes, or voice synthesizers; visualindicators such as those capable of displaying numbers, text, symbols,and/or lights; and physical indicators such as vibrators.

When immediate feedback is provided to the user 112, the user may, inresponse to such feedback, adjust his or her workout, if necessary, tobring the monitored parameter(s) back into the particular zone(s). Theuser 112 may, for example, preset the zone(s) prior to beginning aworkout, and/or may adjust the zones (or even disable the zonemonitoring function entirely, or perhaps only the feedback functionalitythereof) during the workout if he or she desires a more or less intenseworkout. In one illustrative embodiment, the user 112 may “program” aparticular zone-specific workout, during which zones are adjustedautomatically during the workout in response to time and/or distancemeasurements. For example, the user may program a workout during which afirst zone (e.g., a warm up zone) is set during a first time period ordistance interval, a second zone (e.g., a workout zone) is set during asecond time period or distance interval, and a third zone (e.g., a cooldown zone) is set during a third time period or distance interval. Inanother example, the user may set zones on a per-mile or per-minutebasis so as to perform interval training. The number of possibilities ofzone adjustments in response to distance and/or time goals being met isvirtually without limit, and the user may preset his or her workout tohis or her particular tastes or needs. It should be appreciated that,when both heart rate and speed or pace are monitored simultaneously,negative feedback (i.e., an indication that workout intensity should beincreased) may be provided only in response to one or more combinationsof the monitored parameters falling outside of the preset zones. Forexample, during a particular time period or distance interval, negativefeedback may be provided to the user only when both heart rate orspeed/pace fall outside the preset zones therefor.

In one illustrative embodiment, the wrist-mounted unit 104 and/or thefoot-mounted unit 102 can be programmed so as to provide the user withfeedback in response to one or more particular distances being traveledor in response to one or more time periods elapsing during a workout.Such time periods and/or distances may, for example, be preprogrammed orselected by the user. For example, a perceptible indication may beprovided to the user 112 each time the user 112 has traveled a mile oreach time the user 112 has been running or walking for an additional tenminutes. This sort of feedback can enables the user to monitor theprogress of his or her workout, and to be reminded as to the progress inachieving a certain goal, e.g., to run ten miles or to walk for onehour. Alternatively, the user may program the wrist-mounted unit 104and/or the foot-mounted unit 102 such that feedback is provided wheneach of several different time and/or distance intervals are completed.For example, during a workout, the user may be provided with a firstperceptible indication after a “warm up” distance has been completed orafter a “warm up” time period has elapsed, may be provided with a secondperceptible indication after a “workout” distance has been completed orafter a “workout” time period has elapsed, and may be provided with athird perceptible indication after a “cool-down” distance has beencompleted or after a “cool-down” time period has elapsed. A perceptibleindication may also be provided to the user instructing the user to rest(i.e., slow down considerably or stop exercising completely) during oneor more particular time intervals or following one or more particulardistance intervals.

In one illustrative embodiment, the user may program the wrist-mountedunit 104 and/or the foot-mounted unit 102 with a predetermined distanceto be achieved during an outing, as well as an indication as to how theuser desires to receive feedback during the race. For example, the usermay enter a certain goal distance (e.g., five mites), and request to begiven feedback each time a certain fraction (e.g., one-fourth) of thegoal distance has been completed. If the fraction is chosen to beone-half, the user may complete an “out and back” walk or run (i.e., anouting during which the user travels back and forth along the same path)of a certain distance, and may be given a perceptible indication as toexactly when to turn around and go in the opposite direction.

In one embodiment, the user may program the foot-mounted unit 102 and/orthe wrist-mounted unit 104 with information regarding a distance to betraveled during an outing, and one or both of (1) a goal time in whichthe user wishes to complete the distance, and (2) a goal average speedor pace the user wishes to achieve during the outing. Based upon thisinformation, as well as a measured distance traveled during the outing,the user can be provided with real-time feedback regarding futureperformance during the outing that is required for the user to achievethe input goal(s), e.g., the average speed or pace required during theremainder of the race in order to achieve the input goal(s). Inaddition, based upon an input goal distance, the measured elapsed timeduring an outing, the measured distance traveled thus far during theouting, and the measured current pace of the user, the user also can beprovided with feedback regarding a projected time in which the user willcomplete the goal distance if the user maintains his or her currentpace. Many other forms of feedback using one or more other combinationsof such input and measured parameters also are possible in connectionwith different embodiments of the invention, and the invention is notlimited to any particular form of feedback.

As discussed above in connection with FIG. 8, in one embodiment of theinvention, the foot-mounted unit 102 and/or the wrist-mounted unit canreadily determine whether the user 112 is walking or running during eachfootstep taken by the user. Therefore, in such an embodiment, the usermay program the foot-mounted unit 102 and/or the wrist-mounted unit 104such that the user is instructed to walk or run during certain distanceand/or time intervals. When so programmed, the device may provide aperceptible indication to the user that the user should be running orwalking, if the user is walking when he or she should be running, orvice versa. Any variety and/or number of interval lengths during whichthe user should walk and run during an outing may be programmed. In oneembodiment, the respective total amounts of time that the user walks andruns during an outing is displayed to the user and/or stored in memoryfor later use. Such feedback to the user may help the user optimize aworkout, for example, if the user wishes to walk and run equal distancesduring an outing. Ratios of “walk time” to “run time” and/or “walkdistance” to “run distance,” or other ratios of such values, may also becalculated and displayed to the user and/or stored in memory for lateruse.

As discussed above, one way the user can program workouts or inputparameters such is those discussed above is to use software executing onthe computer 428 and/or the network server 442 to preset the parametersfor his or her workout, and then cause the programmed information to betransmitted to the wrist-mounted unit 104 and/or the foot-mounted unit102.

In embodiments of the invention wherein both the heart rate (HR) andfoot contact times of a user are measured, a pair of so-called “fitnessindexes” (one for walking and one for running) may be calculated by aprocessor receiving this information. The fitness indexes (FI) for aparticular user may, for example, be calculated according to thefollowing equations:FI_(W)=HR*Tc _(W) FI_(R)=HR*Tc _(R)  (27)

Significantly, we have discovered that the values of a user's “walking”fitness index (FI_(W)) and “running” fitness index (FI_(R)) aresubstantially unaffected by changes in the user's speed when the user iswalking and running, respectively. That is, as a user's speed increases,the amount that the user's heart rate (HR) increases tends to offset theamount that the value of Tc decreases, so that the product of the twovariables remains substantially constant. Similarly, as a user's speeddecreases, the amount that the user's heart rate decreases tends tooffset the amount that the value of Tc increases.

In one embodiment of the invention, an average fitness index (FI_(AVE))for a user 112 is calculated each time the user walks or runs for aparticular period of time, and the value of this average fitness index(FI_(AVE)) may be used as an indicator of the user's physical fitnesslevel. A user's average fitness index (FI_(AVE)) for a particular outingmay be calculated, for example, by multiplying each foot contact time(Tc) value obtained during the outing by the user's heart rate (HR) atthe time that the foot contact time (TO value is measured, andmaintaining a running sum of all such products of Tc and HR. The runningsum then may be divided by the total number of foot contact time (Tc)values obtained during the outing to yield the average fitness indexvalue.

The calculated average fitness index value (FI_(AVE)) may, for example,be calculated and/or displayed on the wrist-mounted unit 104, thefoot-mounted unit 102, and/or another device such as a personal computerlinked to the foot-mounted unit 102 and/or the wrist-mounted unit 104via a wireless communication link. The fitness index value may bedisplayed simultaneously with any of the other “displayable” informationdiscussed above in connection with FIGS. 32A-H, or may be displayedseparately therefrom.

Given the relationships between foot contact time (Tc) and otherperformance parameters (e.g., pace, speed, energy expenditure, etc.)that are either described herein or are known in the art, we haverecognized that other equations including both heart rate and one ormore of such other performance parameters as variables therein would,when the variables are properly combined, likewise yield a constantvalue. Therefore, such other performance parameters may be used in lieuof or in addition to measured foot contact times in an equation used tocalculate a fitness index (FI) value. For example, a fitness index (FI)value may be obtained using an equation having both: (1) heart rate(HR), and (2) any one of Speed, Pace, and energy expenditure asvariables therein. In this regard, it should be appreciated that, to theextent that other techniques may be used to obtain such otherperformance parameters (i.e., techniques other than measuring footcontact times and calculating the performance parameters based thereon),such other techniques may be used to obtain values of one or more ofthese performance parameters, and a fitness index may be calculatedbased thereupon. Therefore, in some embodiments, a fitness index valuemay be obtained without requiring the measurement of foot contact times.In the illustrative embodiment described herein, the measurement of footcontact times and/or other performance parameters, and the calculationof a fitness index based thereupon, are performed by one or more devicesthat are ambulatory (i.e., may be supported by the user while the useris in locomotion on foot).

Significantly, once a fitness index value is determined for a particularuser, the user's heart rate can be estimated based solely upon one ormore measured foot contact times of the user, or based upon one of theother measured performance parameters discussed above. This may beaccomplished, for example, by rewriting the equations (27) as follows:HR=FI_(W) /Tc _(W) HR=FI_(R) /Tc _(R)  (28)

Using the equations (28), the user's instantaneous heart rate HR can beestimated by: (1) measuring a foot contact time during a footstep takenby the user, (2) determining whether the user was walking or runningwhen the foot contact time was measured, and (3) including the measuredfoot contact time in an appropriate one of the equations (28) (dependingon whether the user was walking or running) along with thepreviously-determined average fitness index value (FI_(AVE)). Therefore,in one embodiment of the invention, an ambulatory device or system(i.e., a device or group of devices that may be carried by the userwhile the user is in locomotion on foot) may be used to measure theheart rate of a user based upon the measurement of a parameter otherthan the user's pulse. While, in the illustrative embodiment describedherein, this measured parameter is the foot contact time (Tc) of theuser, it should be appreciated that other performance parameters mayalternatively be measured and used to estimate a user's heart rate (HR)in a similar fashion. For example, measured values of a user's Pace,Speed, or energy expenditure may be used to estimate the user's heartrate (HR) based upon a known relationship between such a measured valueand heart rate for the user.

We have recognized that, when a user first begins walking or running,the FI values tend to be less consistent than after the user has “warmedup.” Therefore, it may be desirable to wait for a period of time after auser begins walking or running to begin measuring fitness index (FI)values. Any of a number of alternative techniques can be used toimplement this “waiting” function, and the invention is not limited toany particular technique for accomplishing the same. In one illustrativeembodiment, for example, after a user begins walking or running, thepercentage differences between consecutive FI values is determined, andFI values are accumulated for the purpose of calculating an averagefitness index (FI) only after the percentage difference betweenconsecutive FI values is less than a predetermined threshold.Alternatively, the device performing the calculations may simply wait apredetermined period of time or wait until the user has traveled apredetermined distance before it begins accumulating “good” FI values.

After a user's fitness index has leveled out during an exercise session(e.g., after the user has warmed up), the fitness index may be monitoredfor abnormal deviations from its expected value. Such deviations may,for example, be indicative of conditions such as dehydration, fatigue,stress, etc. In one embodiment, a user's fitness index is continuouslymonitored and, if it deviates from its expected value by more than aparticular percentage, an indication is provided to the user thatsomething may be wrong. As discussed above, such an indication may beprovided in any of a number of ways (e.g., text, sound such as beeps orbuzzers, lights, etc.), and the invention is not limited to anyparticular type of indication.

Based upon the average fitness index (FI_(AVE)) measured during eachouting by a user 112, improvements in the user's fitness level will bemarked by decreases in the value of FI_(AVE), and decreases in theuser's fitness level will be marked by increases in the value ofFI_(AVE). The user 112 may also compare his or her fitness index to thefitness indexes of other people, and thereby compare his or her level offitness to that of those people. For convenience, the value of FI orFI_(AVE) may be scaled by a constant value so as to yield a value thatis within a common range (e.g., between “1” and “100”).

While a user's fitness index (FI) is substantially constant when theuser is walking or running on a flat surface, we have recognized thatthe calculated values of Fl tend to increase slightly as the grade onwhich the user is walking or running increases, and tend to decreaseslightly as the grade on which the user is walking or running decreases.In light of this, the calculated value of a user's fitness index for agiven measured foot contact time (Tc) value, may be used to ascertainwhether the user is walking or running on a grade at the time the footcontact time (Tc) is measured. As used herein, “grade” refers to theslope of a surface with respect to a level plane at the point the gradeis measured. Most commonly, grade is measured in terms of the verticalrise in the surface divided by the horizontal run of the surface along aparticular distance, and its value is typically expressed as apercentage. It should be appreciated, however, that the invention is notlimited in this respect, and that grade may be measured in any of anumber of alternative ways.

Empirical measurements have shown that a user's fitness index (FI)increases and decreases approximately linearly with correspondingincreases and decreases in the value of the grade of the surface onwhich the user is walking or running. Therefore, once the linearrelationships between FI and the current walking or running grade areknown for a given user, an approximation of the actual value of thegrade on which the user 112 is walking or running may be made byanalyzing changes in the value of FI with respect to the value of FIwhen the user walks or runs on a flat (i.e., “O %”) grade.Alternatively, a higher-order polynomial may be generated to moreaccurately reflect the actual relationship between FI and the currentwalking or running grade.

This information regarding the grade of the surface on which the user112 is walking or running may be used, for example, to correctcalculated values of Pace, Speed, distance traveled, and/or expendedenergy to account for the changes in surface grade. This valuecorrection may be based upon a simple determination that a non-zerograde condition exists (e.g., determining that the user is on one ofthree surfaces: negative grade, level surface, or positive grade), ormay be based upon a determination of the actual value of the grade(e.g., a percent grade). In addition, information regarding changes insurface grade can be exploited to identify changes in the altitude ofthe user 112 while the user is walking or running Information regardingaltitude changes may be stored in memory, along with correspondingdistance measurements, and may be used for a number of purposes. Forexample, in one embodiment of the invention, such information may betransferred (e.g., via a wireless communication link) to the computer428, where it may be displayed to the user in graph form. For example, agraph may be displayed that shows, for a particular outing, changes inaltitude over the distance of the outing. In one embodiment, a secondgraph may be superimposed over the altitude/distance graph showing, forexample, changes in pace over the distance of the outing. The computer428 and/or the server 442 may analyze the received data to evaluate, forexample, the degree by which a user's pace or speed changes in responseto changing grades or altitudes. This information may therefore be usedto provide feedback to the user regarding the effectiveness or effortlevel exerted during a given workout.

It should be appreciated that any of a number of other measurablevariable physiological parameters (i.e., physiological parameters suchas respiration rate, blood pressure, body temperature, lactate level,etc.) may alternatively or additionally be determined and combined witha measured foot contact time or other performance parameter (e.g.,speed, pace, energy expenditure, etc.) to yield a calculated parameterreflecting useful information. We have recognized that at least some ofsuch variable physiological parameters, e.g., respiration rate, arerelated to heart rate. Therefore, when a variable physiologicalparameter such as respiration rate (which is related to heart rate) iscombined with a measured foot contact time or other performanceparameter (e.g., pace, energy expenditure or the like), a fitness indexvalue may be yielded in a manner similar to that in which a fitnessindex value is yielded when heart rate and foot contact time or anotherperformance parameter are combined as discussed above. When applicable,the fitness index so calculated may be used in any of the ways or forany of the purposes that the fitness index described above is used. Itshould be appreciated, of course, that the invention is not limited tothe combinations of performance parameters and variable physiologicalparameters that yield substantially constant values, as usefulinformation may also be derived from combinations of performanceparameters and variable physiological parameters having values thatchange in response to increases in the user's speed, etc. For example, asuch a calculated parameter may be used as an indicator of the user'seffort level during an outing. Therefore, various embodiments of theinvention may combine any measured performance parameter (e.g., footcontact time, foot loft time, step time, speed, pace, energyexpenditure, distance traveled, etc.) with any measured variablephysiological parameter (e.g., heart rate, respiration rate, bodytemperature, lactate level, etc.) to yield a useful result.

As shown in FIG. 4, in one illustrative embodiment of the invention, thefoot-mounted unit 102 includes an altimeter 426 to measure the currentaltitude (with respect to a reference altitude such as sea level) of theuser 112. The altimeter 426 may be disposed on the user 112 in any of anumber of ways, and need not be included in the foot-mounted unit 112.

For example, the altimeter 426 may alternatively be disposed within thewrist-mounted unit 104, the chest-mounted unit 106, or elsewhere on theuser 112. The output from the altimeter 426 may be exploited in any of anumber of ways. For example, information from the altimeter 426 may bestored in memory and/or transferred to the computer 428 or the server442 for display on the display 438 and/or analysis, as discussed above.

In one embodiment, the output from the altimeter 426, together withdistance traveled measurements, may be used to determine a grade of thesurface on which the user 112 is walking or running. This determinationof grade may then be used to calculate or correct calculated values suchas Pace, Speed, distance traveled, energy expenditure, and the like, ina manner similar to that discussed above, Such performance parameterstherefore may be calculated based upon measured altitudes of the user.

As discussed above, information regarding any of the parameters andvalues discussed herein may be transmitted from the foot-mounted unit102 and/or the wrist-mounted unit 104 to the computer 428, and possiblythe network server 442. Once this information is so transferred,software executing on the computer 428 and/or the network server 442 mayanalyze and/or process it so as to provide meaningful feedback to theuser, for example, in the form of graphs, charts, data logs, etc. Forexample, the user may view (e.g., on the display 438) displayedinformation such as graphs (e.g., time lapse graphs), charts, and/ordata logs representing: (1) daily, weekly, monthly, yearly values(and/or any of the forgoing measured to date) of: (a) total distancetraveled while walking and/or running, (b) total time spent walkingand/or running, (c) average pace or speed while walking and/or running,and/or (c) average fitness index; (2) average pace, speed, heart rate,stride length, cadence (stride rate), caloric burn rate, acceleration,and/or elevation per unit of choice (e.g., per mile or per minute)during a particular outing; and/or (3) mileage traveled by, or an amountof accumulated stress encountered by, a respective pairs of runningshoes or by a particular user; etc. A few examples of such graphs andcharts that may be displayed to the user are discussed below inconnection with FIGS. 33A-37. When appropriate, any combination of theabove-identified items may be combined on the same graph so as to “tellthe story” of a particular outing. For example, a user's average pace,heart rate, and course elevation, may be shown simultaneously on aper-unit distance (e.g., per mile) basis, thereby giving the personreviewing the graph sufficient information to understand the correlationbetween changes in such values during the race, e.g., a significantincrease in elevation may be found to correlate with the user's decreasein speed and increase in heart rate, or vice versa.

The graphs of FIGS. 33A-36B and the chart of FIG. 37 illustrate examplesof how different types of information may be displayed to the user(e.g., using the display 438 of the computer 428) based upon dataaccumulated while the user is in locomotion on foot (i.e., dataaccumulated using an ambulatory device).

The graph of FIG. 33A shows both measured speed and measured stridelengths of the user as a function of distance during a four hundredmeter race. Specifically, the curve 3302A represents the measured speedof the user 112 as a function of distance during the race, and the curve3304A represents measured stride lengths of the user 112 as a functionof distance during the race. Curves 3302B and 3302B in the graph of FIG.33B are based upon the same values as are the curves 3302A and 3302A,respectively; however, the values shown therein have been averaged overfifty meter intervals. The stride length of a user is the distancebetween locations where the left foot and the right foot of the user, orvice versa, make contact with the ground during a complete footstep(defined above) taken by the user. A user's stride length therefore maybe calculated by dividing the distance traveled during a completefootstep by two. The stride length for a given footstep may becalculated, for example, either (1) by dividing the measured step time(Ts) for the footstep by two times the calculated pace during thefootstep (i.e., Ts/(2*Pace) (and converting to different units, ifdesired), or (2) by multiplying the calculated speed during the footstepby the measured step time (Ts) for the footstep, and dividing the resultby two (i.e., Ts*Speed/2) (and converting to different units, ifdesired).

The graph of FIG. 34A shows both measured speed and measured stride rate(cadence) of the user as a function of distance during a four hundredmeter race. Specifically, the curve 3302A represents the measured speedof the user 112 as a function of distance during the race, and the curve3402A represents the cadence of the user 112 as a function of distanceduring the race. Curves 33028 and 3402B in the graph of FIG. 34B arebased upon the same values as are the curves 3302A and 3402A,respectively; however, the values shown therein have been averaged overfifty meter intervals. The cadence for each footstep may be calculated,for example, by taking the inverse of the measured step time (Ts) forthat footstep, and (if desired) adjusting the units of the value soobtained to a typical measure such as steps/minute.

The graph of FIG. 35A shows both measured speed and measured caloric bumrate of the user as a function of distance during a four hundred meterrace. Specifically, the curve 3302A represents the measured speed of theuser 112 as a function of distance during the race, and the curve 3502Arepresents the caloric burn rate of the user 112 as a function ofdistance during the race Curves 3302B and 35028 in the graph of FIG. 358are based upon the same values as are the curves 3302A and 3502A,respectively; however, the values shown therein have been averaged overfifty meter intervals. The caloric bum rate for each footstep may becalculated, for example, in the manner described in U.S. Pat. No.5,925,001, incorporated by reference above.

The graph of FIG. 36A shows both measured speed and measuredacceleration of the user as a function of distance during a four hundredmeter race. Specifically, the curve 3302A represents the measured speedof the user 112 as a function of distance during the race, and the curve3602A represents the acceleration of the user 112 as a function ofdistance during the race'. Curves 3302B and 3602B in the graph of FIG.36B are based upon the same values as are the curves 3302A and 3602A,respectively; however, the values shown therein have been averaged overfifty meter intervals. The acceleration for each footstep may becalculated, for example, by calculating the change in speed betweenfootsteps (e.g., by subtracting the speed measured during the footstepsucceeding the current footstep from the speed measured during thefootstep preceding the current footstep), and dividing that value by themeasured step time (Ts) for the current footstep (and converting todifferent units, if desired).

The chart of FIG. 37 includes entries for race time, split time, averagespeed (both meters-per-second and miles-per-hour), average stride length(both meters and feet), average stride rate, average caloric burn rate,total calories burned, and acceleration, each calculated based uponfifty meter intervals of a four hundred meter race.

In addition to calculating pace based upon the measured foot contacttime for a footstep (as discussed above in connection with FIG. 8), andcalculating speed based upon the inverse of the measured foot contacttime for a footstep (as discussed above in connection with FIG. 13), wehave discovered that it is also possible to calculate the Pace of a userduring a particular footstep based upon the measured step time (Ts) forthat footstep, and to calculate the Speed of the user during aparticular footstep based upon the inverse value of the measured steptime (1/Ts) for that footstep. Examples of empirically measuredrelationships between Pace and Ts and between Speed and 1/Ts for aparticular user 112 (when the user 112 is walking) are shown as lines3802 and 3902 in FIGS. 38 and 39, respectively. Because theserelationships are approximately linear, linear equations can be derivedthat define them with substantial precision, and such equations can beused to calculate the pace and/or speed of the user while the user is inlocomotion on foot simply by measuring the step times of the user. Theselines may be identified and calibrated for a particular user using anyof the techniques discussed above in connection with the Pace vs. Tc andSpeed vs. 1/Tc lines. The measured values of Speed and/or Pace obtainedusing the relationships of FIGS. 38 and 39 can also be used in any ofthe ways and for any of the purposes discussed elsewhere herein. Forexample, parameters such as distance traveled, average speed, averagepace, etc. may be calculated based upon the calculated Speed and/or Pacevalues. Although only the “walking” curves 3802 and 3902 are shown inFIG. 38, it should be appreciated that separate, different lines orcurves may also be employed to calculate Speed and/or Pace values, basedupon measured step times, when the user 112 is running Whether a“walking” or “running” line is to be used for a particular footstep maybe determined in the same or similar manner as is done in connectionwith the Pace vs. Tc and Speed vs. 1/Tc curves discussed above.

It is known that the average amount of force (F_(AVE)) exerted on theground by a user during a footstep taken by the user may be calculatedusing the equation (29) below:F_(AVE)=(Ts*W)/(2*Tc)  (29)wherein “W” is equal to the weight of the user.

In one embodiment of the invention, Ts and Tc values are measured duringrespective footsteps of the user during an outing, and the equation (29)is used to measure a value representing a total amount of stress exertedby the user (Accumulated Stress) during that outing. One way this can beaccomplished is by maintaining a running total of per-footstep averageforce measurements (calculated using the equation (29)) throughout theouting, e.g., using the equation (30) below:Accumulated Stress=ΣF_(AVE)=Σ(W*Ts)/(2*Tc).  (30)

Alternatively, average values of Tc and Ts can be calculated for theouting and can be inserted in the equation (29) to obtain a value ofF_(AVE). The value of F_(AVE) so obtained then can be multiplied by thenumber of steps taken by the user to yield the value of AccumulatedStress. In either case, foot-mounted unit 102 and/or the wrist-mountedunit 104 may obtain the values of Ts and Tc, and either of these units,or one or more other devices, such as the computer 428 and/or thenetwork server 442, may be employed to calculate the values of F_(AVE)and/or Accumulated Stress. It should be appreciated that the value ofAccumulated stress may be scaled by a particular factor to render avalue that is easier to comprehend and store in memory. In such asituation, the factor of two in the denominator of equations (29) and(30) could be omitted, as it would be included in the scaling factorthat was employed. Separate values of Force and/or Accumulated stressmay be obtained for walking or running, if desired. Any of thetechniques discussed above for distinguishing between occasions when theuser 112 is walking or running may be employed for this purpose.

Values of Accumulated Stress may also be accumulated over more than oneouting, if desired. One application for this type accumulatedinformation is to measure the amount of stress encountered by a pair ofshoes over the lifetime of the shoes. The stress accumulated on aper-outing basis can also be employed by a user to permit the user togauge the stress encountered during each outing, and adjust or plan hisor her workout routine accordingly to minimize the risk of injury or tooptimize a workout regime during the current workout or during futureworkouts. For example, a beginning runner may be advised to increase theamount of stress encountered during successive runs at a gradual rate,and thereby minimize the risk of overexertion before his or her body isphysically conditioned to withstand certain levels of stress.

We have recognized that, when Accumulated Stress is measured asdiscussed above, as the Speed of the user increases (and the user's Pacedecreases accordingly), the amount of Accumulated Stress exerted perunit of time (e.g., per minute) tends to increase, whereas the amount ofAccumulated Stress per unit of distance (e.g., per mile) tends todecrease. This phenomenon is illustrated both in the chart of FIG. 40and the graph of FIG. 41.

In the chart of FIG. 40, average values of Tc and Ts for a particularuser (weighing 150 pounds) traveling at each of several paces and speedsare used to calculate corresponding values of average ground force usingthe equation (29). The chart of FIG. 40 also shows values of Stress Per“ 1/10” Mile and Stress Per Minute, with each of these values beingcalculated by multiplying the average ground force value by the numberof steps taken during the corresponding time or distance interval. Thecurve 4102 in FIG. 41 represents the relationship between AccumulatedStress measured on a per-minute basis for a particular user and theSpeed of the user. The curve 4104 in FIG. 41 represents the relationshipbetween Accumulated Stress measured on a per- 1/10 mile basis for aparticular user and the Speed of the user. If desired, these types ofcharts or curves for Accumulated Stress, or other information calculatedbased thereupon, can be generated and displayed using any of the devicesin the system of FIG. 4.

It should be understood that each of the features, techniques, andcapabilities of the devices and systems described herein may be employedin combination with any of the other described features, techniques, andcapabilities, and the invention is not limited to the particularcombinations of features, techniques, and capabilities described herein.For example, any of the described features, capabilities, or techniqueswith regard to the display of certain performance parameters and/orvariable physiological parameters, or graphs, charts, etc., basedthereon, can be employed in combination with any of the describedfeatures, capabilities or techniques involved with accumulating dataduring footsteps taken by the user, or performing or optimizingcalculations based thereupon (e.g., calibrating Pace vs. Tc or Ts and/orSpeed vs. 1/Tc or 1/Ts lines).

Having thus described at least one illustrative embodiment of theinvention, various alterations, modifications and improvements willreadily occur to those skilled in the art. Such alterations,modifications and improvements are intended to be within the spirit andscope of the invention. Accordingly, the foregoing description is by wayof example only and is not intended as limiting. The invention islimited only as defined in the following claims and the equivalentsthereto.

The invention claimed is:
 1. An apparatus comprising: a processor; and amemory comprising computer-executable instructions that, when executedby the processor, causes the apparatus to at least perform: receiving,via a network, exercise data from a measurement unit that is configuredto generate the exercise data based on movement by a user; calculating,from the exercise data, a fitness index as proportional to a footcontact time multiplied by a heart rate of the user; updating historicalworkout information of the user based on the exercise data; andgenerating a graphical representation based on the exercise data forpresentation.
 2. The apparatus of claim 1, wherein the graphicalrepresentation depicts a measured exercise parameter over a period oftime.
 3. The apparatus of claim 1, wherein the memory further comprisecomputer-executable instructions that, when executed by the processor,further perform at least; analyzing, by the apparatus, the exercise datato identify changes in pace or speed of the user in response to changesin grades or altitudes.
 4. The apparatus of claim 1, wherein the memoryfurther comprises computer-executable instruction that, when executed bythe processor, further perform at least; analyzing, by the apparatus,the exercise data to evaluate changes in pace over a distance during aworkout.
 5. The apparatus of claim 1, wherein the memory furthercomprises computer-executable instructions that, when executed by theprocessor, further perform at least; analyzing, by the apparatus, theexercise data to determine mileage traveled using a pair of footwear. 6.The apparatus of claim 1, wherein the memory further comprisescomputer-executable instructions that, when executed by the processor,further perform at least; analyzing, by the apparatus, the exercise datato determine an average value of an exercise parameter.
 7. The apparatusof claim 1, wherein the memory further comprises computer-executableinstruction that, when executed by the processor, further perform atleast; analyzing by the apparatus, the exercise data to determine atotal value of an exercise parameter.
 8. The apparatus of claim 1,wherein the graphical representation depicts multiple performanceparameters on a per distance unit basis.
 9. The apparatus of claim 1,wherein the memory further comprise computer-executable instructionsthat, when executed by the processor, further perform at least;analyzing, by the apparatus, exercise data to determine at least onephysiological parameter and at least one performance parameter.
 10. Theapparatus of claim 1, wherein the fitness index is substantiallyconstant for different combinations of foot contact time and heart rate.11. A memory storing computer-executable instructions that, whenexecuted, causes an apparatus at least to perform: receiving, via anetwork, exercise data from a measurement unit that is configured togenerate the exercise data based on movement by a user; calculating,from the exercise data, a fitness index as proportional to a footcontact time multiple by a heart rate of the user; updating historicalworkout information of the user based on the exercise data; andgenerating a graphical representation based on the exercise data forpresentation.
 12. The memory of claim 11, wherein the memory furthercomprises computer-executable instruction that, when executed by theprocessor, further perform at least; analyzing, by the apparatus, theexercise data to identify changes in pace or speed of the user inresponse to changes in grades or altitudes.
 13. The memory of claim 11,wherein the memory further comprises computer-executable instructionthat, when executed by the processor, further perform at least;analyzing, by the apparatus, the exercise data to evaluate changes inpace over a distance during a workout.
 14. The memory of claim 11,wherein the memory further comprises computer-executable instructionthat, when executed by the processor, further perform at least;analyzing, by the apparatus, the exercise data to determine mileagetraveled using a pair of footwear.
 15. The memory of claim 11, whereinthe memory further comprises computer-executable instructions that, whenexecuted by the processor, further causes the apparatus to: analyze theexercise data to determine at least one physiological parameter and atleast one performance parameter; and generate a fitness index of theuser based on the at least one physiological parameter and the at leastone performance parameter.
 16. A computer-implemented method comprising:receiving, via a network, exercise data from a measurement unit that isconfigured to generate the exercise data based on movement by a user;calculating, from the exercise data, a fitness index as proportional toa foot contact time multiplied by rate of the user; updating, by acomputer, historical workout information of the user based on theexercise data; and generating a graphical representation based on theexercise data for presentation.
 17. The method of claim 16, furthercomprising analyzing the exercise data to identify changes in pace orspeed of the user in response to changes in grades or altitudes.
 18. Themethod of claim 16, further comprising analyzing the exercise data toevaluate changes in pace over a distance during a workout.
 19. Themethod of claim 16, further comprising analyzing the exercise data todetermine mileage traveled using a pair of footwear.
 20. The method ofclaim 16, further comprising: analyzing the exercise data to determineat least one physiological parameter and at least one performanceparameter; and generating a fitness index of the user based on the atleast one physiological parameter and the at least one performanceparameter.